我有 2 张 table ,门票和代币。 token 作为列 user_type。
我正在尝试计算如何计算加入 tokens.ticket_id 的所有票证,这些票证没有 tokens.user_type == 'ADMIN'
。所以 user_type
可以等于任何东西,admin 除外。
问题是一张票可能还有 5 个其他标记。
我对 SQL 知识有一定的了解,但是这个让我困惑了一段时间。
如果标题写错了,也很抱歉。 谢谢你, 基兰!
编辑
我可能解释错了。但这仍然比它应该的返回更多。如果它有一个 ADMIN token ,它不应该出现在结果中,否则它应该出现。我添加这个是因为 stackoverflow 提示进行编辑的非实质性更改。
最佳答案
您可能正在寻找这样的东西:
SELECT
COUNT(DISTINCT Tickets.id)
FROM
Tickets
INNER JOIN Tokens
ON Tokens.ticket_id = Tickets.id
AND Tokens.user_type != 'ADMIN'
如果您需要包含没有 token 的票证,这可能有效:
SELECT
COUNT(DISTINCT Tickets.id)
FROM
Tickets
LEFT JOIN Tokens
ON Tokens.ticket_id = Tickets.id
WHERE
Tokens.user_type != 'ADMIN'
关于mysql - SQL 帮助在忽略右侧的条件下计算 LEFT JOIN 的行数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15532707/