0
现在的问题是:您想成为第一个为航班预订和选择座位的人。查找所有没有预订的航班的flight_num
和日期。SQL查询:寻找空
从以下表:
Flights
(flight_num, source_city, dest_city
)Departures
(flight_num, date, plane_type
)Passengers
(passenger_id, passenger_name, passenger_address
)Bookings
(passenger_id, flight_num, date, seat_number
)
我的回答是:
SELECT D.flight_num, D.date
FROM DEPARTURES D, BOOKINGS B
WHERE B.passenger_id = NULL
我知道这是错误的,但谁能告诉我为什么?这是什么答案?
除了其他的事情,你希望'是null'来检查空值。 – 2014-10-08 18:06:07
[踢坏的习惯:使用旧式JOIN](http://sqlblog.com/blogs/aaron_bertrand/archive/2009/10/08/bad-habits-to-kick-using-old-style-joins。 aspx) - 在ANSI - ** 92 ** SQL标准(**超过20年前的**)中,旧式*逗号分隔的表*样式列表被替换为* proper * ANSI'JOIN'语法它的使用是不鼓励的。现在,如果没有**任何**连接条件,您基本上会得到一个**笛卡尔产品** - 每个行中的'Departures'与'Bookings'中的每一行相结合 - 最有可能**不是**您需要的! – 2014-10-08 18:07:31
你是从课本中还是从书中学到的?如果是这样,升级或退款的时间。我认为这些旧式的连接是罗马人发明的。 – GolezTrol 2014-10-08 18:08:15