2010-10-23 36 views
0
a table 
a_id a_value 
1 text1 
2 test2 

b table 
b_id b_num a_id 
1 5  1 
2 7  1 
3 2  1 
4 7  2 
5 56 2 

結果基礎的表(編輯)MySQL的2個表查詢問題

A_ID:1 a_value:text1的總數:3條記錄

A_ID:2 a_value:text2的總數:2條記錄

如何在sql中獲取這種格式?

查詢表,添加一個字段(總)計數b.a_id = a.a_id表B

謝謝你..

+0

根據你在表格b中的數據,你如何得到以下結果:a_id:2 total:2 records'? – InSane 2010-10-23 07:27:12

+0

你是如何得到3條和2條記錄的?你確定b表數據是正確的嗎? – 2010-10-23 07:27:36

+0

你想獲得'b_id'的數量嗎? – JoshD 2010-10-23 07:27:38

回答

0

你可以試試:

SELECT a.a_id AS id, a.a_value AS value, (SELECT count(b.b_id) AS count FROM b WHERE (b.a_id = a.a_id)) AS total FROM a GROUP BY a.a_id 

那麼結果使用從表一個b數據的例子:

**id value  total** 

    1  text1  3 

    2  text2  2 
+0

謝謝!Nervo Verdezoto – love 2010-10-23 09:35:51

0

我想象你在b表中有一個錯誤,所以我會假設你叫什麼b_id實際上是a_id,或者您的結果將是錯誤的

反正你可以使用:

SELECT COUNT(b.a_id) AS total FROM b GROUP BY (SELECT a.a_id FROM a) 
    ORDER BY b.a_id 
0

更新查詢基於變化的問題

SELECT a_id, a_value, x.total 
FROM a 
INNER JOIN 
    (SELECT b.a_id, COUNT(1) AS total 
    FROM b 
    GROUP BY (b.a_id)) X 
ON a.a_id = x.a_id 
ORDER BY a.a_id 
+0

@LXXA - 我已更新查詢。我認爲這應該按照更新後的問題 – InSane 2010-10-23 07:44:26