sql - 使用子查询来连接两个表中的列
问题描述
我开始学习 SQL 并且有些东西我不明白
我想从 Production.products中获取列product_id 和 product_name并将其与 Production.stocks 表中的数量列连接起来,但我不想使用连接,而是想使用子查询。
这是我到目前为止写的代码:我不明白为什么它不起作用:(
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;
解决方案
我认为根本不需要子查询。
如果产品是唯一的实体,那么就查询性能而言,连接到stocks 表并对数量进行求和肯定会更有益
SELECT
Production.Products.Product_id,
Production.Products.product_name,
SUM(Production.Stocks.quantity) AS Quantity
FROM
Production.Products
LEFT JOIN
Production.Stocks
ON
Production.Stocks.product_id = Production.Products.product_id
GROUP BY
Production.Products.product_id,
Production.Products.product_name
如果您需要它按商店报价库存数量,那么您需要在商店中添加一个附加连接并将商店添加到 select 和 group by 子句中,如下所示
SELECT
Production.Products.Product_id,
Production.Products.product_name,
Sales.Stores.store_name,
SUM(Production.Stocks.quantity) AS Quantity
FROM
Production.Products
LEFT JOIN
Production.Stocks
ON
Production.Stocks.product_id = Production.Products.product_id
LEFT JOIN
Sales.Stores
ON
Production.Stocks.store_id = Sales.Stores.store_id
GROUP BY
Production.Products.product_id,
Production.Products.product_name,
Sales.Stores.store_name
希望有帮助
推荐阅读
- angular - 部署到 Github 页面的 Angular 应用程序未初始化?
- reactjs - 将数据从父组件传递到子组件时React Image无法识别文件路径
- ruby-on-rails - 没有这样的命令:'geoNear',当将 geo_near 与 mongoid 一起使用时
- git - Vs 2019 中是否有 Git 的 Revert 命令?
- css - @media 查询被忽略
- python - cronjob中的python多线程问题没有执行
- python - 在pygame中做陷阱的有效方法是什么?
- r - 如何在 R 中使用 x 轴上的区域名称创建组条形图?
- math - F# 获取 uInt64 的根
- html - 如何暂停动画css?