【发布时间】:2016-02-03 15:17:13
【问题描述】:
考虑:
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)
还需要根据t1.a和t3.r从t3表中选出不在上述查询结果中的记录
【问题讨论】:
标签: mysql sql-server sql-server-2008
考虑:
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)
还需要根据t1.a和t3.r从t3表中选出不在上述查询结果中的记录
【问题讨论】:
标签: mysql sql-server sql-server-2008
如果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
【讨论】:
在WHERE 子句中尝试NOT IN,如下所示:
SELECT
t3.*
FROM
t3 AS t3
WHERE
t3.r NOT IN
(select t1.a
from t1 join t2
on (t1.a=t2.a))
【讨论】: