SQL 子查詢 次數統計-[SQL~關聯子查詢] 多個各自count之後還要join成一張表 (在多個表格裡count資料)
SQL 子查詢 次數統計-[SQL~關聯子查詢] 多個各自count之後還要join成一張表 (在多個表格裡count資料)
假設說,我有個資料庫,分別存了A表格 B表格 C表格 ……
都是主鍵(Primary Key)+外鍵(Foreign Key)的格式
這幾張表都有外來鍵只向同一張表格的主鍵
也就是
A表格
A_id(主鍵) A_name data ……
B表格
B_id(主鍵) A_id(外來鍵) data ……
C表格
C_id(主鍵) A_id(外來鍵) data ……
如今
我想要個別統計一下資料的狀況
最後呈現的欄位是這樣
A_id A_name B_count C_count
ANS:
SELECT `A_id`, `A_name`,
(SELECT COUNT(*) FROM `tableB` WHERE `tableB`.`A_id`=`tableA`.`A_id`) AS `B_count`,
(SELECT COUNT(*) FROM `tableC` WHERE `tableC`.`A_id`=`tableA`.`A_id`) AS `C_count`,
FROM `tableA`;
這個架構叫做
關聯子查詢
SQL語句裡面跟外面有產生關聯的
但是光看問題不會馬上想到這個架構