我想在单个查询中使用带有内部联接的外部联接
查询:
select d.unit_name, a.tour_code, a.hub_code, b.name, c.pp_no, c.dte_of_expiry
from bkng_mst a , bkng_pax b, bkng_cust c, unit_mst d
where a.bkng_id = b.bkng_id
and b.unit_cde = d.unit_cde
and a.unit_cde = d.unit_cde
and b.cust_id = c.cust_id
and a.bkng_stat = 'CNF'
and b.bkng_pax_cancel_flg = 'N'
and a.bkng_id = 'XXXX'
在a.bkng_id = pd.bkng_id上使用表pax_dtl pd中的外部联接以及上述查询
答案 0 :(得分:0)
我认为,考虑到评论中提供的信息,以下查询应该会有所帮助:
SELECT DISTINCT
d.unit_name, a.tour_code, a.hub_code, b.name, c.pp_no, c.dte_of_expiry,
pd.bkng_id, pd.unit_name, pd.tour_code, pd.pax_name, pd.pnr_no, pd.fare_base, pd.is_block, pd.is_system
FROM
bkng_mst a
INNER JOIN bkng_pax b
ON a.bkng_id = b.bkng_id
INNER JOIN bkng_cust c
ON b.cust_id = c.cust_id
INNER JOIN unit_mst d
ON b.unit_cde = d.unit_cde
AND a.unit_cde = d.unit_cde
LEFT OUTER JOIN pax_dtl pd
ON a.bkng_id=pd.bkng_id
WHERE
a.bkng_stat = 'CNF'
AND b.bkng_pax_cancel_flg = 'N'
AND a.bkng_id = 'XXXX'
由于bkng_mst
和pax_dtl
表之间的 1对多关系,上述查询中的列d.unit_name, a.tour_code, a.hub_code, b.name, c.pp_no, c.dte_of_expiry
仅在1个特定{{1}时重复} bkng_id
列中至少有一个不同的值。
我希望它对你有帮助,但如果有任何疑问,请写下来。