作者f0987654 (skywalker)
看板Database
標題[SQL ] Join之後發生的怪問題
時間Wed Mar 7 12:55:15 2012
我有兩張資料表
表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
推 LPH66:having 改成 where 放在 group by 前面這樣試試? 03/07 16:45
→ LPH66:先用 where 篩過再 group by 起來應該就是你要的了... 03/07 16:46
→ f0987654:感謝L大,問題有修改可以在幫忙一下嘛? thx 03/07 17:28
※ 編輯: f0987654 來自: 175.180.185.77 (03/07 23:21)