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
以下 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