我在做一些过去的问题报告,发现了以下几点:
公司使用以下数据库:
customers - CustNo, CustName, CustAddress
Reservations - CustNo, TourID
Tours - TourID, Destination, Date, Time, Price
从这些表中,我必须创建一个SQL语句,用于查找在伦敦和爱丁堡的任何旅行中预订的乘客的客户数量…
尝试如下:
SELECT
R.custNo
FROM
Reservations R, Tours T
WHERE
T.tourID = R.tourID
AND T.destination = 'London'
AND T.destination = 'Edinburgh';
有人告诉我这是不正确的,我要找一个替代的,正确的,sql语句。如果有人能帮我解决这个问题那就太好了。
最佳答案
您可以尝试以下操作:
select R.custNo
from Reservations R
join Tours T on T.tourID = R.tourID
where T.destination in ('London', 'Edinburgh')
group by R.custNo
having count(distinct T.destination) = 2
这将查找具有
'London'
或'Edinburgh'
目的地的客户,并仅检索同时具有这两个目的地的客户。关于mysql - SQL查询不正确,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30149358/