【发布时间】:2019-10-09 12:47:42
【问题描述】:
我开始学习 SQL 有一些我不明白的地方
我想从 Production.products 中获取列 product_id 和 product_name 并将其与 Production.stocks 表中的 quantity 列连接起来 但我不想使用连接,而是想使用子查询。
这是我目前写的代码: 而且我不明白为什么它不起作用:(
SELECT P.product_id, P.product_name,(
SELECT S.quantity
FROM Production.stocks AS S
WHERE S.product_id = P.product_id)
FROM Production.products as P;
【问题讨论】:
-
“不工作”是什么意思?
-
我没有得到一个包含三列的表,而是得到了错误:子查询返回了超过 1 个值。当子查询跟随 =、!=、、>= 或子查询用作表达式时,这是不允许的。
-
这个内连接查询比嵌套查询更容易
-
是的,我知道,但我也想练习嵌套查询,我只是不明白我遇到的错误
-
错误告诉你问题,@micox2。返回数据集(本例中为 2+ 行)的子查询如何显示为标量值?
JOIN就是你在这里。否则我们需要消耗性样本数据和预期结果。
标签: sql sql-server tsql