0
创建
我有以下SQL查询它以某种方式打破:选择数据的SELECT
SELECT *
FROM (
SELECT ID, TEST, CHR, NUMBER
FROM Test_Table
JOIN ...
WHERE ...
) TEMP_TABLE
FROM TEMP_TABLE a
LEFT
JOIN TEMP_TABLE b
ON b.test = a.test
AND b.chr = 'x'
WHERE a.number IN (5,6)
AND b.id IS NULL
GROUP
BY a.test
HAVING COUNT(*) = 2;
从第一FROM
声明,我得到以下临时表:
ID , TEST, CHR , NUMBER
------------------------------
(1 , 7 , 'C' , 5),
(2 , 7 , 'T' , 6),
(3 , 8 , 'C' , 4),
(4 , 8 , 'T' , 5),
(5 , 9 , 'A' , 4),
(6 , 9 , 'G' , 5),
(7 , 10 , 'T' , 4),
(8 , 10 , 'A' , 5),
(9 , 10 , 'X' , 6),
(10 , 14 , 'T' , 4),
(11 , 14 , 'G' , 5);
从FROM TEMP_TABLE ...
我尝试实施下列条件:
例如
test
第7列包含两行,如果number
列包含值5和6,并且该值不是在chr
列中,我想选择在test
列中选择具有7的行。例如
test
柱10含有三行,如果number
列包含值5和6,以及值X存在于chr
列中,我想在test
柱10以排除行。
至于导致只应test
柱7,因为test
第7列有5个和6个在number
列,而不是X.
结果例如:
ID | TEST | CHR | NUMBER
1 | 7 | C | 5
2 | 7 | T | 6
做什么上面的SQL查询出错了吗?