2013-03-27 2 views
1

Возможно ли выполнить этот запрос без каких-либо подзапросов? Или меньше кода? Чтобы получить тот же результат.запрос без подзапросов? SQL

SELECT person 
FROM tbla 
WHERE person IN 
(SELECT person 
FROM tblb 
WHERE age IN 
(SELECT age 
FROM tblc 
where age = '20')); 
+1

Невозможно ответить на это, не зная структуры таблиц, которые вы выбираете. – DanSingerman

+0

Спасибо всем за быстрый ответ. Работал как шарм. Благодаря! – kvambaam

ответ

1
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' 
0

вы можете использовать присоединиться, но 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 

Для дальнейшего получить больше знаний о присоединяется, любезно перейдите по ссылке ниже:

0

просто кладете 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; 
Смежные вопросы