A SQL指南,第9版,Phil Pratt和Mary Last,第5章。我们得到的唯一帮助是连接所有5个表,并且所有5个表都是必需的。我们被告知我们可能需要一个“ INNER”联接和一个“ INTERSECT”运算符,但是她没有解释why和when背后的逻辑。非常令人沮丧。我想学得不好。
问题intersect
,只需一系列inner join
。请考虑以下查询,该查询遵循在模式中定义的关系并根据where
子句中的搜索条件进行过滤:
select
c.first_name customer_first_name,
c.last_name customer_last_name,
t.trip_name,
r.trip_date,
g.first_name guide_first_name,
g.last_name guide_last_name
from customer c
inner join reservation r on r.customer_num = c.customer_num
inner join trip t on t.trip_id = r.trip_id
inner join trip_guides tg on tg.trip_id = t.trip_id
inner join guide g on g.guide_num = tg.guide_num
where c.customer_num = '112' and r.trip_date = date'2016-06-15'