[英]mySQL LEFT JOIN and COUNT number of occurrences in right hand table
以下mySQL查詢返回一個行結構,該結構提供了票證表中的所有行以及銷售表中的所有匹配信息。
SELECT tickets.*, sales.ID AS tcount
FROM tickets LEFT JOIN sales ON tickets.ID = sales.ticket_ID
但是,我們要做的就是為每張票計算右表中現有行數,以跟蹤庫存。
我以為這樣做是可以的,但是盡管它正確地計算了票數,但它只從票證表中返回一行,並統計了tcount列中的所有銷售額。
SELECT tickets.*,
COUNT(sales.ID) AS tcount
FROM tickets LEFT JOIN sales ON tickets.ID = sales.ticket_ID
您需要一個group by
:
SELECT tickets.*, COUNT(sales.ID) AS tcount
FROM tickets LEFT JOIN
sales
ON tickets.ID = sales.ticket_ID
GROUP BY tickets.ID;
切換表順序或執行RIGHT JOIN
。 即:
SELECT tickets.*,
COUNT(sales.ID) AS tcount
FROM sales LEFT JOIN tickets ON tickets.ID = sales.ticket_ID
要么
SELECT tickets.*,
COUNT(sales.ID) AS tcount
FROM tickets RIGHT JOIN sales ON tickets.ID = sales.ticket_ID
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.