我有一个带有两个表的数据库:
航班表:
code start end
1 Madrid London
预订表:
flight_code passport_number price
1 12345678 100
第二张桌子的“flight_code”引用了第一张桌子的代码,因为预订只能在数据库中已经存在的航班上进行。
如果我想查看从马德里开始的预订航班的所有人的护照号码,我会这样做:
SELECT passport_number FROM bookings, flights WHERE flight_code=code AND start = 'Madrid';
在这种情况下返回12345678。
但是,如果我要删除在马德里开始的所有预订(三个字段),我应该使用什么sql命令?
要查看航班是否在马德里开始,我应该使用第一张表的代码查看fligth_code,就像我选择的代码一样,但我不知道如何使用DELETE ... < / p>
答案 0 :(得分:0)
DELETE FROM Bookings
WHERE EXISTS (SELECT 1
FROM Flights
WHERE flight_code = code
AND start = 'Madrid')