使用不同表对 sql 查询中的行进行分组

Grouping rows in sql query with different tables

我如何编写一个显示如下结果的查询

1          Beverages           NULL                     NULL          
1          Beverages           Chai                     Exotic Liquids
1          Beverages           Cheng                    Exotic Liquids
1          Dairy Products      NULL                     NULL
1          Beverages           Gorgonzola Telino        Tokyo Traders
1          Beverages           Geitost                  Tokyo Traders
1          Beverages           Gudbrandsdalsost         Tokyo Traders

我用的是Northwind,我会写正常的查询

SELECT c.CategoryId, c.CategoryName, p.ProductName,s.CompanyName 
FROM Categories c 
INNER JOIN Products p ON c.CategoryId = p.CategoryId
INNER JOIN Suppliers s ON s.SupplierId = p.CategoryId

您可以通过该查询获得所需的结果:

SELECT c.CategoryId, c.CategoryName, p.ProductName,s.CompanyName 
FROM Categories c 
LEFT JOIN Products p ON c.CategoryId = p.CategoryId
LEFT JOIN Suppliers s ON s.SupplierId = p.SupplierID
UNION ALL
SELECT c.CategoryId, c.CategoryName, NULL, NULL 
FROM Categories c 
ORDER BY CategoryId, ProductName