我如何在Oracle中联接所有这5个表并仅返回1行? [关闭]

问题描述 投票:-1回答:1
我正在上第一门SQL课,而我的教授并没有以任何人都能理解的方式来解释事情。我们使用的是

A SQL指南,第9版,Phil Pratt和Mary Last,第5章。我们得到的唯一帮助是连接所有5个表,并且所有5个表都是必需的。我们被告知我们可能需要一个“ INNER”联接和一个“ INTERSECT”运算符,但是她没有解释why和when背后的逻辑。非常令人沮丧。我想学得不好。

问题

[劳拉·琼斯(Laura Jones)希望确认她相信即将在2016年6月15日进行的下次旅行。您的记录显示,劳拉·琼斯(Laura Jones)的客户编号为'112'。要准备将要传递给琼斯女士的信息,请生成查询,该查询列出客户编号'112'的客户的姓氏和名字,行程名称,行程日期和指南的姓氏和名字。注意:由于客户编号的数据类型为CHAR(4),它是最多4个字符的字符串,因此'112'必须用单引号引起来。

sql join oracle10g intersect
1个回答
0
投票
您不需要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'

© www.soinside.com 2019 - 2024. All rights reserved.