如何在一个select语句中包含两个嵌套查询?

时间:2014-04-11 07:34:17

标签: mysql sql

我有三张桌子。其中一个表是主表(TRIP)。另外两个表具有主表的外键。我想查询两个表中的数据和每个表上的条件。这是我的代码:

SELECT L#
FROM TRIP 
WHERE REG# IN 
(
    SELECT REG#
    FROM TRUCK
    WHERE REG# = 'PKR768'
)
AND T# IN
(
    SELECT T#
    FROM TRIPLEG
    WHERE TRIPLEG.DEPARTURE = 'Melbourne'
) 

错误=缺少右括号

编辑后:

只有一个从TRUCK表返回的行,因此整个输出不应超过1行,但不超过1。

2 个答案:

答案 0 :(得分:2)

警告我对mysql并不是特别熟悉,但我会更自然地将此查询表达为

select tp.l#
from truck t
inner join trip tr on tr.reg# = t.reg#
inner join tripleg tl on tl.t# = tr.t# and tl.departure = 'Melbourne'
where t.reg# = 'PKR768' 

答案 1 :(得分:1)

您在第二个查询中缺少WHERE子句。将其更改为:

SELECT T#
FROM TRIPLEG
WHERE TRIPLEG.DEPARTURE = 'Melbourne'