[SQL ] JOIN如何不抓出重複的資料

作者: Talenius (Harmonic Inspirations)   2017-01-07 13:18:14
(針對 SQL 語言的問題,用這個標題。請用 Ctrl+Y 砍掉這行)
資料庫名稱:Microsoft SQL Server
資料庫版本:2014
內容/問題描述:
如表A       表B
ID   Status    ID  Status
張三 1      張三 1
李四 2      李四 1      
王五 2      王五 2
SELECT
(SELECT 表A.ID
From 表A JOIN 表B ON 表A.ID = 表B.ID
WHERE 表A.Status = 2 AND 表B.Status = 1) AS 2
(因為需要很多欄位顯示狀態(如2)但問題都一樣,所以以下省略)
產生結果:
李四
李四
請問:
1. 為何李四出現二次?
2. 如何只讓李四出現一次?
3. 若是SELECT COUNT(表A.ID),如何顯示1?(即只算李四一個)
謝謝
作者: likesp999 (大腸桿菌)   2017-01-07 18:15:00
照你的打是只有李四
作者: Talenius (Harmonic Inspirations)   2017-01-07 19:01:00
會出現二次李四,但我只要一次
作者: likesp999 (大腸桿菌)   2017-01-07 19:35:00
我照你的規格跟語法來測試,的確只有李四一筆,還是你本身資料有重複?妳可以加一下inner 不過結果因該一樣,但你的語法沒問體,你可以自己就用這個範例打看看,就是你想要的結果!!
作者: Talenius (Harmonic Inspirations)   2017-01-07 21:15:00
改成INNER JOIN,仍然是一樣的錯誤
作者: tedcat (動靜:MSN暱稱為主)   2017-01-08 15:45:00
sql沒問題,肯定是你資料面有漏http://sqlfiddle.com/#!9/827a43/4/0要碼表A李四符合條件的 有兩筆 或是表B有兩筆或是試著join欄位那邊 加上定序讓他相同(collate)
作者: Talenius (Harmonic Inspirations)   2017-01-09 07:20:00
感謝L大與T大的幫忙,重新載入資料後匯出資料就對了我不確定為何之前同個csv檔會匯入二次感謝各位的幫忙
作者: adrianshum (Alien)   2017-02-16 09:25:00
好歹設個primary key 或unique constraint 嘛

Links booklink

Contact Us: admin [ a t ] ucptt.com