看板 Database 關於我們 聯絡資訊
※ 引述《hurtooe (懷念的BBS)》之銘言: : 各位大大~~ : 不好意思~~ : 本人是SQL新手~~ : 有點小問題希望得到解答~~ : 第一是 : Identity (usr_name, f_name, l_name), usr_name是primary key. : 然後query是Select usr_name, f_name, l_name From identity Group By usr_name; : 結果是這樣有錯誤!! : 不知道哪位大大可以幫我解答一下嗎~ group by 不是這麼用的. 上面的sql只要把group by(含)後那段刪掉即可. : 第二是另一個問題~~ : 我有兩個table: A(x, y), B (y, z), x,y,z是裡面的欄位~ : 這裡有兩個query : Query 1: select A.x, (select count(*) from B where B.y = A.y) as C from A; : Query 2: select A.x, count(*) as C from A, B where B.y = A.y group by A.x; 我用mysql跑了一個範例, 以A為主表, B為副表, 結果Query 1跟Query 2不太一樣. Query 1: 這種結構我沒用過, 不太熟. 猜測應該類似是以 left join 的方式聯結A,B兩表. 應該與 Query 1.1 作用一樣. Query 1.1: select A.x, count(*) as C from A left join B on B.y = A.y group by A.x; 所以 在A中的記錄若在B中沒有與之關聯到的記錄, 一樣會被撈出來, 而C值為0. (以上這段描述看不懂的話我再解說) Query 2: 是用 inner join 的方式連結 A, B兩個table, 在這條件下, 凡是 在A中的記錄若在B中沒有與之關聯到的記錄, 不會被撈出來. : 請問這兩個query一樣嗎~~?? : 希望不管是第一或第二的問題~~ : 有想法就說一下吧~~ : 謝謝~~~^^ -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 58.115.151.184 ※ 編輯: bobju 來自: 58.115.151.184 (10/19 18:20)