mysql - 查询中的多个左连接返回不正确的计数

标签 mysql

当我使用多个 LEFT JOINS 来获取所需结果时,无法填充精确计数,如下所示

我希望获取每个“manager_1”拥有的“来自 t2 的票数”的总数以及他们的姓名

仅供引用:表 2 仅包含工程师的别名

尝试过内、右、左外连接来达到想要的结果,但没有效果

表 1 - t1

            +-----------+--------+------------------+-----------------+-----------------+
            | role      | alias  | name             | manager_1_alias | manager_2_alias |
            +-----------+--------+------------------+-----------------+-----------------+
            | engineer  | tommy  | tommy gun        | tim             | gegard          |
            +-----------+--------+------------------+-----------------+-----------------+
            | engineer  | sean   | sean penn        | ricky           | flo             |
            +-----------+--------+------------------+-----------------+-----------------+
            | manager_1 | tim    | tim robbins      |                 |                 |
            +-----------+--------+------------------+-----------------+-----------------+
            | manager_2 | gegard | gegard mousasi   |                 |                 |
            +-----------+--------+------------------+-----------------+-----------------+
            | manager_1 | ricky  | ricky hatton     |                 |                 |
            +-----------+--------+------------------+-----------------+-----------------+
            | manager_2 | flo    | floyd mayweather |                 |                 |
            +-----------+--------+------------------+-----------------+-----------------+

表 2 - t2

            +---------------+-------+
            | ticket_number | alias |
            +---------------+-------+
            | 1234          | tommy |
            +---------------+-------+
            | 4567          | sean  |
            +---------------+-------+
            | 8910          | tommy |
            +---------------+-------+
            | 4321          | tommy |
            +---------------+-------+
            | 4422          | sean  |
            +---------------+-------+
            | 2288          | tommy |
            +---------------+-------+

当前查询

            SELECT
              j2.name
              count(t2.ticket_number) 
            FROM 
              t2 
              LEFT JOIN t1 AS j1 ON t2.alias = j1.alias 
              LEFT JOIN t1 AS j2 ON j1.manager_1_alias = j2.alias 
              LEFT JOIN t1 AS j3 ON j1.manager_2_alias = j3.alias 
            group by 
              j1.manager_1_alias

期望的结果

            +----------------+------------------+
            | manager_1 name | total_no_tickets |
            +----------------+------------------+
            | tim robbins    | 4                |
            +----------------+------------------+
            | ricky hatton   | 2                |
            +----------------+------------------+

最佳答案

检查这个

SELECT t1.name as manager_1_name, count(t2.ticket_number) as total_no_tickets
FROM t1
LEFT JOIN t2 ON t1.alias = t2.alias
GROUP BY t1.name 
ORDER BY t1.name ASC

关于mysql - 查询中的多个左连接返回不正确的计数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57415343/

相关文章:

php - 客户端仅选择时的 SQL 注入(inject)

php - 使用 jQuery 和 PHP 从 MySQL 获取单个数值,并拒绝在 js 级别充当 int

php - 如何在 codeigniter 中编写这个复杂的查询?

php - 如何在 codeigniter 中使用 img_library 调整多个图像的大小

php - 试图从 mysql 查询创建多维数组,php?

mysql - 使用外键更改表

mysql - 经典 ASP 添加记录到 MySQL

mysql - 计算 mysql 中的计算行

php - MySQL 记录不显示在 HTML 表中

php - MySQL 数据库的编码问题 (web2project)