我有3個表SQL三分表形成查詢
table a table b table c
+--------+ ---------+------- ------+-------+
| ID | ID | STATUS| ID | STATUS|
+--------+ ---------+-------- -----+--------+
| 1 | 4 | A | 6 | A
| 2 | 5 | NULL | 5 |NULL
| 3 | 1 | A | 3 | A
| 9 | 2 | NULL | 1 | NULL
現在我想從表B和C的記錄相匹配表
我寫了一個查詢ID
SELECT DISTINCT ID
FROM
(SELECT a.ID,b.STATUS FROM A a B b where a.ID=b.ID
UNION
SELECT a.ID,C.STATUS
FROM A a,C C
WHERE a.ID=C.ID) as T
它返回3條記錄
但是當我追加條件T.STATUS ='A'
SELECT DISTINCT ID
FROM
(SELECT a.ID,b.STATUS FROM A a B b
WHERE a.ID=b.ID
UNION
SELECT a.ID,C.STATUS
FROM A a,C C
WHERE a.ID=C.ID) as T
WHERE T.STATUS='A'
返回2條記錄
我再次改變WHERE條件作爲T.STATUS爲空
SELECT DISTINCT ID FROM
(SELECT a.ID,b.STATUS
FROM A a,B b
WHERE a.ID=b.ID
UNION
SELECT a.ID,C.STATUS
FROM A a,C C
WHERE a.ID=C.ID) as T
WHERE T.STATUS is null
返回2條記錄
共4個記錄,但我沒有在那裏的條件第一個查詢它返回3
這是如何不匹配?我知道它的我的查詢問題,但
我想申請我的where條件只有3條記錄(查詢沒有條件返回結果)。
儘量避免用逗號分隔連接! – 2015-04-03 12:47:36
這不能是你正在使用的SQL。兩個來自第二屆工會選擇的聲明? – xQbert 2015-04-03 12:56:30