2016-07-05 60 views
0
SELECT flight_id, depart, arr, price 
FROM user.flightdb t2 LEFT JOIN 
    user.booking t1 
    ON t1.flightID = t2.flight_id 
WHERE t2.source = 1 and t2.dest = 4 and 
     t1.date = "02/02/2016" and t1.flightID IS NULL; 

我想从flightdb(表)中选择那些flight_id,他们应该具有源和目的地,并且在特定日期没有出现在预订(表格)中。SQL查询负号运算

所以这将是在MySQL

回答

0

您可以使用left join的查询,但在第二个表的条件需要是on子句。此外,你应该使用合适的日期格式:

SELECT flight_id, depart, arr, price 
FROM user.flightdb t2 LEFT JOIN 
    user.booking t1 
    ON t1.flightID = t2.flight_id and t1.date = '2016-02-02' 
WHERE t2.source = 1 and t2.dest = 4 and t1.flightID IS NULL; 
+0

喔得到它太感谢你了,它杀死了我的整个day.can你刚刚告诉我在哪里错了逻辑? –

+0

我提到的两件事之一:'booking'的条件需要在'on'子句中(对于左连接),并且可能日期格式被误解。 –

0

你可以使用下面的查询

SELECT flight_id, depart, arr, price 
     FROM user.flightdb t2 LEFT JOIN 
     user.booking t1 ON t1.flightID = t2.flight_id 
    and t2.source = 1 and t2.dest = 4 AND 
     t1.date = "02/02/2016" WHERE t1.flightID IS NULL; 
+0

请检查并让我知道 –

+0

它也提供了一些额外的数据 –