我想列出一位客人的家屬。預訂酒店時,客人可攜帶朋友或小孩(家屬)。但是,預訂房間時,每間客房僅可容納3人。因此,如果一位客人帶着4人與他們,2家屬將留在102室,其他3在103室。但他們在同一預訂讓我們說預訂編號= 2002.酒店 - 多個房間有多位家屬的單獨預訂
我試圖sql oracle查詢顯示某個預訂的所有依賴項。以下是我已經嘗試的正常工作:
SELECT b.BOOKINGID,
b.GUESTID,
d.DEPENDANTID,
d.FORENAME AS firstname,
d.SURNAME AS lastname,
br.FLOORNO,
br.ROOMNO
FROM BOOKING b
LEFT JOIN BOOKINGDEPENDANT bd
ON b.BOOKINGID = bd.BOOKINGID
LEFT JOIN DEPENDANT d
ON d.DEPENDANTID = bd.DEPENDANTID
LEFT JOIN BOOKINGROOM br
ON b.BOOKINGID = br.BOOKINGID
WHERE b.BOOKINGID = &BOOKINGID;
我與上面的查詢面臨的問題是,它能夠列出所有家屬,但它不止一次列出他們訂票時與多個房間相關聯。
例如預訂2002使用房間102和103從而所有依賴與103相關聯包括那些停留在103同樣爲103
@MooHa .....您需要一種方法來查看與BOOKINGROOM表關聯的DEPENDENT表。像DEPENDENT.ROOMID = BOOKINGROOM.ID。然後LEFT JOIN BOOKINGROOM br ON d.ROOMID = br.ID – MikeTWebb 2013-03-19 20:37:29
受撫養人是否不是所有與預定相關房間的居住者? – 2013-03-19 20:38:26
一個人可以預訂2個單獨的房間,但在同一預訂ID下。但它將每個房間的每個人都關聯起來,所以人x和y都與房間102和房間103相關聯,儘管y只保留在103中。因此,它爲每個房間打印兩次受撫養人。 – MooHa 2013-03-19 20:42:36