Re: [SQL ] 如何讓選出的結果不DISTINCT??
※ 引述《canatmis (Guest~)》之銘言:
: ※ 引述《motokare ( fool. )》之銘言:
: : 大家好
: : 我用以下的SQL去搜尋
: : SELECT Discount FROM ChargeMaster WHERE ChargeID IN(SELECT ChargeID FROM
: : RegTrans WHERE sys_id='1') ORDER BY ChargeID ASC
: : Discount 是 ChargeMaster 底下的一個欄位
: : sys_id 是 RegTrans 底下的一個欄位
: : ChargeID 是 以上兩個 table 之間共有的欄位(其值互相對應)
: : 現在我想要取 sys_id = 1 的 ChargeID
: : 然後選出這些 ChargeID 相對應的 Discount
: : 重複的話一定要列出來
: : 現在我光打 SELECT ChargeID FROM RegTrans WHERE sys_id='1'
: : 可以選出重複的 ChargeID (重複的不會被省略)
: : 可是用全部的語句下去跑 選出來的值卻好像有被 DISTINCT 後的效果
: : 我爬了文也上了 google 找了一下 卻沒找到相關訊息
: : 不知道有沒有人知道該怎麼解決?? 感覺就只差那麼一點點了
: : 先謝過了 謝謝!!!
: 有個疑問,感覺你的那個ORDER BY這樣寫怪怪的
: 不是都ORDER BY SELECT出來的欄位的嗎怎是裡面的條件欄位,且寫在外面
: SELECT ChargeMaster.Discount
: FROM ChargeMaster, RegTrans
: WHERE sys_id = 1 AND ChargeMaster.ChargeID = RegTrans.ChargeID
: ORDER BY Discount ASC
: 請高手說明一下吧,我也不確定我寫這樣跑出來的是不是原PO要的
您這樣寫跑出來的結果應該根原PO之前的結果是一樣的,
因為在WHERE子句中,預設是用Inner Join,
剛剛有仔細看原PO的需求,他要的應該是Outer Join的結果
SELECT ChargeMaster.Discount
FROM RegTrans Outer Join ON
RegTrans.ChargeID = ChargeMaster.ChargeID
Where sys_id = 1
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 218.170.51.73
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 4 之 4 篇):