簡體   English   中英

mySQL LEFT JOIN和COUNT表的出現次數

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

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