0

我正在尝试获取座位更多为 0 的航班。我在 MySQL 中有 3 个表

1. Sector
2. Flights
3. Aircraft

请按 1,2 和 3 的顺序查看表格结构的图像 在此处输入图像描述

我正在写这个 SQL

select * from aircraft 
where aircrafttypeID=
       (select aircrafttypeID 
            from sector,flights 
             where source like 'Kolkata' 
             and destination like 'Ahmedabad' 
             and sector.sectorID=flights.sectorID) 
and bseats>0

此查询给出错误 -

子查询返回超过 1 行

因为子查询正在重新调整多个航班号。所以我需要一些帮助如何获得座位超过0的航班号

4

2 回答 2

3

试试这个

SELECT  *
FROM    aircraft
WHERE   aircrafttypeID IN ( SELECT   aircrafttypeID
                            FROM     sector ,
                                     flights
                            WHERE    source LIKE 'Kolkata'
                                     AND destination LIKE 'Ahmedabad'
                                     AND sector.sectorID = flights.sectorID
                     )
    AND bseats > 0
于 2013-06-14T08:12:00.290 回答
2

只是一个建议。您可以在子查询上使用 join 代替。

select * 
from aircraft a 
inner join flights f
on a.aircrafttypeID=f.aircrafttypeID
inner join source s 
on s.sectorID=f.sectorID
and s.source LIKE 'Kolkata'
and s.destination LIKE 'Ahmedabad'
and a.bseats>0
于 2013-06-14T08:17:59.720 回答