考慮:如何從表中選擇這不是在SELECT查詢的結果的記錄(SELECT查詢可能是2個或多個表連接)
table t1(a,b,c)
table t2(a,d,e)
table t3(r,f,g)
select t1.a,t1.b,t1.c,t2.d,t2.e
from t1 join t2
on (t1.a=t2.a)
而且還需要從T3表中的記錄這是不是在t1.a的基礎和t3.r
考慮:如何從表中選擇這不是在SELECT查詢的結果的記錄(SELECT查詢可能是2個或多個表連接)
table t1(a,b,c)
table t2(a,d,e)
table t3(r,f,g)
select t1.a,t1.b,t1.c,t2.d,t2.e
from t1 join t2
on (t1.a=t2.a)
而且還需要從T3表中的記錄這是不是在t1.a的基礎和t3.r
上面查詢結果如果t1.a
和t3.r
之間的關係,那麼就必須像表之間的聯接
select t1.a,
t1.b,
t1.c,
t2.d,
t2.e,
t3.g
from t1
join t2 on t1.a = t2.a
join t3 on t1.a = t3.r;
如果有t1.a
t3.r
和之間沒有關係,則:
SELECT t1,*, t2.*, t3.*
FROM t1
JOIN t2 ON t1.a = t2.a
JOIN t3 ON 1=1
嘗試NOT IN
的WHERE
子句中,沿着線:
SELECT
t3.*
FROM
t3 AS t3
WHERE
t3.r NOT IN
(select t1.a
from t1 join t2
on (t1.a=t2.a))