簡體   English   中英

通過一個查詢選擇記錄

[英]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_iddata表的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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM