要循环的SQL查询
我有两张表要循环的SQL查询,sql,relational-division,Sql,Relational Division,我有两张表TravelHistory和LikesToVisit 两者都有两个字段,SSN和AirportId 查询客户是否访问了他喜欢访问的所有城市是什么 非常感谢您的帮助。这将为您提供一份没有去过他们喜欢的地方的人的无差别名单 SELECT * FROM LikesToVisit AS lv LEFT OUTER JOIN TravelHistory AS th ON lv.SSN = th.SSN AND lv.AirportID = th.AirportID WHERE lv.SSN =
TravelHistory
和LikesToVisit
两者都有两个字段,SSN
和AirportId
查询客户是否访问了他喜欢访问的所有城市是什么
非常感谢您的帮助。这将为您提供一份没有去过他们喜欢的地方的人的无差别名单
SELECT * FROM LikesToVisit AS lv LEFT OUTER JOIN TravelHistory AS th ON lv.SSN = th.SSN AND lv.AirportID = th.AirportID WHERE lv.SSN = NULL
或者,也可以使用子查询
SELECT * FROM LikesToVisit AS lv WHERE lv.SSN NOT IN (SELECT SSN FROM TravelHistory AS th WHERE th.SSN = lv.SSN AND th.AirportID = lv.AirportID)
该查询将提供他喜欢访问和尚未访问的所有城市
SELECT SSN, Airportid
FROM LikesToVisit
MINUS
SELECT SSN, Airportid
FROM TravelHistory
选择所有不在上述结果集中的SSN将为您提供访问过所有他喜欢的人的列表
SELECT SSN, 'Visited all he liked'
FROM Travelhistory
WHERE SSN not in (select distinct SSN
FROM( SELECT SSN, Airportid
FROM LikesToVisit
MINUS
SELECT SSN, Airportid
FROM TravelHistory)
请注意,在中对大多数数据库使用
通常非常慢(尤其是在处理子查询中的大型记录集时!)。从个人经验来看,使用连接通常要快得多。