是否可以在没有任何子查询的情况下执行此查询?或者更少的代码?获得相同的结果。查询没有子查询? SQL
SELECT person
FROM tbla
WHERE person IN
(SELECT person
FROM tblb
WHERE age IN
(SELECT age
FROM tblc
where age = '20'));
是否可以在没有任何子查询的情况下执行此查询?或者更少的代码?获得相同的结果。查询没有子查询? SQL
SELECT person
FROM tbla
WHERE person IN
(SELECT person
FROM tblb
WHERE age IN
(SELECT age
FROM tblc
where age = '20'));
SELECT tbla.person
FROM tbla
inner join tblb on tblb.person = tbla.person
inner join tblc on tblc.age = tblb.age
WHERE tblc.age = '20'
可以使用加入,但一个DISTINCT
关键字是必需的,以消除重复行。
SELECT DISTINCT a.*
FROM tbla a
INNER JOIN tblb b
ON a.person = b.person
INNER JOIN tblc c
ON b.age = c.age
WHERE c.age = 20
为了进一步获得更多的知识有关加入,请访问以下链接:
只要把你的tblc
和tblb
作为INNER JOIN
:
SELECT tbla.person
FROM tbla
INNER JOIN tblb
ON tblb.person = tbla.person
INNER JOIN tblc
ON tblc.age = tblb.age
WHERE tblc.age = 20;
如果不知道所选表格的结构,则无法真正回答这个问题。 – DanSingerman 2013-03-27 14:11:05
谢谢大家的快速回复。像魅力一样工作。谢谢! – kvambaam 2013-03-27 14:24:52