我对 SQL 查询非常陌生。我正在为 Microsoft 70-461 学习并找到一个我认为可以简化的示例,但是我的版本返回了错误的结果,我想了解原因。
本学习指南显示了这个查询:
USE TSQL2012;
SELECT productid, productname, unitprice, P.supplierid
FROM Production.Products AS P
WHERE supplierid IN
(SELECT supplier
FROM Production.Suppliers
WHERE country = N'Japan');
Run Code Online (Sandbox Code Playgroud)
正确返回 6 行,我的查询:
USE TSQL2012;
SELECT productid, productname, unitprice, P.supplierid
FROM Production.Products AS P, Production.Suppliers AS S
WHERE S.country = N'Japan':
Run Code Online (Sandbox Code Playgroud)
返回 231 行,production.products 表只包含 70 行开始,所以我不明白。有人可以告诉我我在俯瞰什么。先感谢您。
如果没有描述两个表之间匹配的谓词,您只需列出所有产品/日本供应商组合,而不管供应商是否适合每种产品。
USE TSQL2012
GO
SELECT
p.productid ,
p.productname ,
p.unitprice ,
p.supplierid
FROM Production.Products p
JOIN Production.Suppliers s ON p.supplierid = s.supplierid
WHERE s.country = N'Japan';
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
53 次 |
| 最近记录: |