※ 引述《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)