我将发送一个图像中的数据库描述。
我试过这个选择,但恐怕这不对
SELECT t.type , a.ICAOId , a.name , ci.id , c.ISOAlpha2ID , p.docReference , ti.docReference , ti.number , p.name , p.surname
FROM dbo.AirportType t
INNER JOIN dbo.Airport a ON t.type = a.type
INNER JOIN dbo.City ci ON a.city = ci.id
INNER JOIN dbo.Country c ON ci.ISOalpha2Id = c.ISOalpha2Id
INNER JOIN dbo.Passenger p ON c.ISOalpha2Id = p.nationality
INNER JOIN dbo.Ticket ti ON p.docReference = ti.docReference
WHERE NOT ci.id = 'Tokyo'
你能帮我把这件事做好吗?enter image description here
2条答案
按热度按时间knsnq2tg1#
您可以创建一个已飞往该市的乘客列表,然后使用该列表作为子查询来选择不在列表中的乘客
我只是想举例说明该如何做
子查询:
现在,您只需将其放入另一个选择不在其中的元素的查询中
请注意,我没有使用您的属性名称,您必须更改这些名称。
这是您必须做的事情的一个简化版本,因为城市不直接在您的门票表中。因此,你还必须加入机票、优惠券和航班,才能让已经飞往一个城市的人。但从那时起,情况是一样的。
总体而言,我相信这应该会帮助你完成你必须做的事情。
zwghvu4y2#
没有提供一个最小的可重复性的例子。
这是一个概念性的例子,可以很容易地扩展到一个真实的场景。
SQL
输出
乘客ID|Passenger_Name|城市名称
-|-|
1|Anna|Orldando
1|安娜|东京
2|保罗|迈阿密
2|Paul|奥尔丹多