mysql - SQL 帮助在忽略右侧的条件下计算 LEFT JOIN 的行数

标签 mysql sql

我有 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/

相关文章:

SQL CASE 表达式 - 设置局部变量的值

SQL Server 2016 : join DATETIME2(3) with DATETIME

sql - 在 VBA 中使用 SQL 连接两个 Excel 工作簿中的数据(只读错误)

sql - postgis上的多表查询

mysql - 什么是Mysql中的页外?

mysql - 如何在通过命令行导入 mysql 转储时跳过已创建的表

mysql char 只显示第一个字符

mysql - 对于按另一列分组的给定条件,如何获取两列的计数?

php - 共享主机上的空白 MySQL 错误

php - 文件上传错误: Undefined variable: filePath’