2016-02-19 55 views
2

我怎么可以编写一个查询,显示像下面分组排在不同的表的SQL查询

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 
结果
+0

结果有什么特别的?可能的答案可能是在您的查询中添加DISTINCT – FLICKER

+0

如果您知道罗斯文数据库第一和第四结果是类别,但他们没有产品名称和供应商公司 –

+1

那么,什么是问题?你的查询看起来不错。它会返回您所期望的数据。你已经提到了关于你的问题主题的GROUP,但是在结果中我没有看到任何分组的轨迹。 – FLICKER

回答

1

你可以得到需要的结果与该查询:

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