[SQL ] JOIN如何不抓出重複的資料
看板Database (資料庫)作者Talenius (Harmonic Inspirations)時間7年前 (2017/01/07 13:18)推噓3(3推 0噓 13→)留言16則, 4人參與討論串1/1
(針對 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?(即只算李四一個)
謝謝
--
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 60.245.65.133
※ 文章網址: https://www.ptt.cc/bbs/Database/M.1483766297.A.2BD.html
推
01/07 18:15, , 1F
01/07 18:15, 1F
→
01/07 19:01, , 2F
01/07 19:01, 2F
推
01/07 19:35, , 3F
01/07 19:35, 3F
→
01/07 19:35, , 4F
01/07 19:35, 4F
原本的表A與表B的欄位都一樣,如:
如表A 表B
ID Status Car Color Man ID Status…
張三 1 ss cs mf 張三 1
李四 2 ss cf mf 李四 1
王五 2 ss cf mw 王五 2
這是原本的程式內容:
SELECT
(SELECT 表A.ID
From 表A JOIN 表B ON 表A.ID = 表B.ID
WHERE 表A.Car = 'ss' AND 表A.Color = 'cf' AND 表A.Status = '2'
AND 表A.Man = 'mf' AND 表B.Status = 1) AS 2,
出現李四二筆的情況(確認過表A與表B分別各只有一個李四)
但應該不論篩選多少表A的條件,應該都是只有一筆
※ 編輯: Talenius (220.137.116.33), 01/07/2017 20:43:54
推
01/07 20:52, , 5F
01/07 20:52, 5F
→
01/07 20:52, , 6F
01/07 20:52, 6F
→
01/07 20:52, , 7F
01/07 20:52, 7F
→
01/07 21:15, , 8F
01/07 21:15, 8F
→
01/08 15:45, , 9F
01/08 15:45, 9F
→
01/08 15:45, , 10F
01/08 15:45, 10F
→
01/08 15:46, , 11F
01/08 15:46, 11F
→
01/08 16:05, , 12F
01/08 16:05, 12F
→
01/09 07:20, , 13F
01/09 07:20, 13F
→
01/09 07:21, , 14F
01/09 07:21, 14F
→
01/09 07:21, , 15F
01/09 07:21, 15F
→
02/16 09:25, , 16F
02/16 09:25, 16F
Database 近期熱門文章
PTT數位生活區 即時熱門文章