精華區beta Database 關於我們 聯絡資訊
: 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. : (以上這段描述看不懂的話我再解說) 那我想問一下~~ 所以在新的表格裡~~ A.x跟C分別代表什麼呢~~? : Query 2: : 是用 inner join 的方式連結 A, B兩個table, 在這條件下, 凡是 : 在A中的記錄若在B中沒有與之關聯到的記錄, 不會被撈出來. 那在這query 2裡~~ A.x和C有分別代表什麼呢? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 67.186.28.46