我一直在尋找這個問題的解決方案很長一段時間,我發現了一些類似的問題,但我的建議的解決方案沒有工作。顯示不需要的resluts的SQL查詢(當連接3個表時)
我想加入這3個表格。
(1)ADM
AID
=主鍵BedNo
= INT
(2)ADMdeposite:
DID
=主鍵AID
=外鍵Dvalue
=金錢Dvalue
=日期
(3)預訂:
ID
=主鍵AID
= Forei GN關鍵Type
= NvcharValue
=金錢Pname
= nvarchar的
我用這個查詢
SELECT
Reservation.AID, Reservation.type, Reservation.value, Reservation.pname,
ADMdeposit.Ddate, ADMdeposit.Dvalue
FROM
ADM
INNER JOIN
ADMdeposit ON ADM.AID = ADMdeposit.AID
INNER JOIN
Reservation ON ADM.AID = Reservation.AID
我得到了想要的結果,但問題是,在ADMdeposite.Dvalue
細胞重複自己的總數Reservation.Type
單元數
這裏是在ADMdeposite.Dvalue
表
這裏的實際數據的打印屏幕查詢的結果是:
下面是結果我想要的:
哪個RDBMS是這樣的?請添加一個標籤來指定您是使用'mysql','postgresql','sql-server','oracle'還是'db2' - 或者其他的東西。 –
「問題是,ADMdeposite.Dvalue單元格自我複製」,這是執行1到多/多對多查詢時它應該執行的操作,它位於複製數據的連接側。如果你想讓它做別的事情,你期望的結果是什麼?分配/拆分與每個ADM和/或ADM存款相匹配的預訂記錄數量?只在第一個或某些類型上填充?或者每個ADM&ADM存款可能只選擇1個預訂,以便它是1對1?如果後者如何識別選擇哪個預約記錄? – Matt
您有2種AID = 1的預留類型,所以ADM行被拉入兩次,並且還有ADMDeposit。你能顯示你想要的結果嗎?最好在你的問題中複製和粘貼輸出文本 - 這樣人們可以複製它並自己使用它。 –