mySQL LEFT JOIN 和 COUNT 在右手出现的次数 table

mySQL LEFT JOIN and COUNT number of occurrences in right hand table

以下 mySQL 查询 returns 一个行结构,该结构提供来自 Tickets Table 的所有行以及来自 Sales Table.[=14= 的任何匹配信息]

SELECT tickets.*, sales.ID AS tcount 
FROM tickets LEFT JOIN sales ON tickets.ID = sales.ticket_ID

然而,我们想要做的就是计算每张票从右边开始的现有行数 table,以便跟踪库存。

我认为这样做就可以了,但尽管它正确地计算了票数,但它只 returns 票的一行 table 并计算了 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;

要么切换 table 命令,要么执行 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