[英]select records with one query
這些是我的表結構:
資料:
id | name
-----+-------
1 | d1
2 | d2
3 | d3
供應商:
id | data_id | name
-----+-------------+----------
1 | 1 | Microsot
2 | 1 | Google
3 | 1 | Yahoo
4 | 2 | Apple
連接器:
id | supplier_id | name
-----+----------------+-----------
1 | 2 | Test 1
2 | 1 | Test 2
3 | 4 | Test 3
現在,我要選擇connector
表中的data
記錄的所有列和記錄的COUNT()
,其中supplier
表中的data_id
與data
表的id
相等。
結果應該是這樣的:
id | name | COUNT()
------+-----------+---------
1 | d1 | 2
2 | d2 | 1
3 | d3 | 0
如何在MySQL中執行一個查詢呢?
select data.id, data.name, count(*)
from data
join supplier on supplier.data_id = data.id
join connector on connector.supplier_id = supplier.id
group by data.id, data.name
SELECT
data.id,
data.name,
COUNT(DISTINCT connector.id)
FROM
data
LEFT JOIN supplier ON (data.id = supplier.data_id)
LEFT JOIN connector ON (supplier.id = connector.supplier_id)
GROUP BY
data.id, data.name
像這樣嗎
SELECT data.id, data.name, COUNT(data.id) FROM data LEFT OUTER JOIN supplier ON(data.id == supplier.data_id) LEFT OUTER JOIN JOIN connector ON (supplier.id == connector.supplier_id)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.