2

我有以下表格:

服务

╔════╦═════════════╗
║ 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) ║
╚══════╩═════════════╩════════╝

谢谢您的帮助

4

1 回答 1

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
于 2013-02-20T14:28:48.867 回答