基于下面的erd,我尝试编写一个查询,显示客户直接预订的情况,包括预订id、预订日期、客户id、客户名字、旅行id、旅游类别名称、旅行日期
我已经能够在我的查询中包括除旅游类别名称之外的所有内容,因为tour\u sites表挡住了我的去路。有没有一种方法可以在不添加任何额外列的情况下从tour\u package表中连接类别名称?
SELECT r.RESERVATION_ID, r.RESERVATION_DATE,
c.CUSTOMER_ID, c.FIRST_NAME,t.TRIP_ID, o.TRIP_DATE/*, P.CATEGORY_NAME*/
FROM CUSTOMER c
INNER JOIN RESERVATION r
ON
r.CUSTOMER_ID=c.CUSTOMER_ID
INNER JOIN TOURTRIP_RESERVATION t
ON
r.RESERVATION_ID=t.RESERVATION_ID
INNER JOIN TOUR_TRIP O
ON
t.TRIP_ID=o.TRIP_ID
WHERE AGENT_ID IS NULL;
2条答案
按热度按时间n3schb8v1#
有没有一种方法可以在不添加任何额外列的情况下从tour\u package表中连接类别名称?
当然;只要把你需要的表都连接起来。您不必将其他列(您不需要的列)添加到
select
列列表,但必须使用tour_sites
反正是table。像这样:
cmssoen22#
您需要先使用tour\u siteid上的tour\u trip加入tour\u站点,然后使用category\u id上的tour\u sites加入tour\u package才能获得tour category\u名称。如果没有像新添加的旅游线路那样为旅游线路分配旅游线路,您可以加入旅游线路站点的左连接。