【问题标题】:Join Multiple Table on Mysql在 Mysql 上加入多个表
【发布时间】:2013-02-20 14:26:26
【问题描述】:

我有以下表格:

服务

╔════╦═════════════╗
║ ID ║ DESCRIPTION ║
╠════╬═════════════╣
║  1 ║ A           ║
║  2 ║ B           ║
║  3 ║ C           ║
╚════╩═════════════╝

员工

╔════╦══════╗
║ ID ║ NAME ║
╠════╬══════╣
║  1 ║ ABC  ║
║  2 ║ DEF  ║
║  3 ║ GHI  ║
╚════╩══════╝

员工服务

╔══════════╦═════════════╦═════╗
║ STAFF_ID ║ SERVICES_ID ║ QTY ║
╠══════════╬═════════════╬═════╣
║        1 ║           1 ║   2 ║
║        1 ║           3 ║   3 ║
║        2 ║           3 ║   1 ║
║        3 ║           2 ║   4 ║
╚══════════╩═════════════╩═════╝

如何查询所有这些表以获得如下结果?

结果:

╔══════╦═════════════╦════════╗
║ NAME ║ DESCRIPTION ║  QTY   ║
╠══════╬═════════════╬════════╣
║ ABC  ║ A           ║ 2      ║
║ ABC  ║ B           ║ (null) ║
║ ABC  ║ C           ║ 3      ║
║ DEF  ║ A           ║ (null) ║
║ DEF  ║ B           ║ (null) ║
║ DEF  ║ C           ║ 1      ║
║ GHI  ║ A           ║ (null) ║
║ GHI  ║ B           ║ 4      ║
║ GHI  ║ C           ║ (null) ║
╚══════╩═════════════╩════════╝

感谢您的帮助

【问题讨论】:

    标签: mysql sql select join


    【解决方案1】:
    SELECT  a.Name, b.Description, c.Qty
    FROM    Staff a
            CROSS JOIN Services b
            LEFT JOIN StaffServices c
                ON a.ID = c.Staff_ID AND
                    b.ID = c.Services_ID
    ORDER   BY a.Name, b.Description
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-03-04
      • 2016-02-28
      • 1970-01-01
      • 2023-03-14
      • 1970-01-01
      • 1970-01-01
      • 2019-07-27
      相关资源
      最近更新 更多