[SQL ] Join + group by 之後發生的問題

看板Database作者 (skywalker)時間13年前 (2012/03/07 12:55), 編輯推噓1(102)
留言3則, 2人參與, 最新討論串1/1
我有兩張資料表 表A checkname id name ------------- 1 John 2 April 3 Jay 4 Jason 表B namelist *表b id為fk *namecheck 只是代表有沒有勾選(預設值0,1是有勾選) id newid possiblename namecheck(0/1) ------------------------------------------------------ 1 123 Elton John 1 1 456 Vector John 0 1 789 KK John 0 2 632 OO April 0 2 587 April ZZ 0 3 451 Jay Chou 1 3 577 Chou Jay 0 4 479 Mike Jason 0 4 985 Jason G. 1 最後我想把在checkname資料表中的名字 對應到namelist中的哪個namecheck=1項目 並且看看哪些還沒有勾選(同個id下,只要有個namecheck是1就代表填過了) 下了以下query SELECT a.ID,a.Name as fullname,b.ID,b.possibleName,namecheck FROM checkname a JOIN namelist b on a.ID = b.ID GROUP BY a.id HAVING b.namecheck='0' 結果如下,變成每個群組(id相同)只要第一筆為0就挑出來 id fullname newid possiblename namecheck(0/1) ------------------------------------------------- 2 April 587 April ZZ 0 4 Jason 451 Mike Jason 0 --->這筆記錄應該是多餘的! 問題到底出在哪呢? 希望大家能幫忙解答一下,謝謝.. -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 175.180.185.77

03/07 16:45, , 1F
having 改成 where 放在 group by 前面這樣試試?
03/07 16:45, 1F

03/07 16:46, , 2F
先用 where 篩過再 group by 起來應該就是你要的了...
03/07 16:46, 2F

03/07 17:28, , 3F
感謝L大,問題有修改可以在幫忙一下嘛? thx
03/07 17:28, 3F
※ 編輯: f0987654 來自: 175.180.185.77 (03/07 23:21)
文章代碼(AID): #1FLkerzk (Database)