gpt4 book ai didi

mysql - SELECT 语句中的子查询 (MySQL)

转载 作者:行者123 更新时间:2023-12-01 00:01:58 25 4
gpt4 key购买 nike

我正在创建一个 SQL 语句,它将返回产品列表以及我在每家商店中可以找到的每一种产品的数量。

我的表(带有一些示例数据)的结构如下:

productID - size - color - stock - storeID  1         - S    - RED01 - 1     - BCN   1         - S    - RED01 - 3     - MAD   2         - S    - YEL02 - 0     - BCN   2         - S    - YEL02 - 2     - MAD   1         - S    - RED01 - 1     - BCN2  

I need a result similar to this one:

productID - size - stockBCN (BCN + BCN2) - stockMAD  1         - S    - 2                     - 3  2         - S    - 0                     - 2

I'm using this statement, and works fine just for an unique product

SELECT DISTINCT prodID, size,
(SELECT SUM(stock) FROM stocks WHERE storeID IN ('BCN','BCN2') AND prodID = 1 AND size = 'S' AND color = 'RED01' GROUP BY prodID, size, color) AS stockBCN,
(SELECT SUM(stock) FROM stocks WHERE storeID = 'MAD' AND prodID = 1 AND size = 'S' AND color = 'RED01' GROUP BY prodID, size, color) AS stockMAD,
FROM stocks WHERE storeID IN ('BCN','BCN2','MAD')
AND prodID = (1) AND size = 'S' AND color = 'RED01'

如何更改它以使其适用于表格中的所有行?

最佳答案

您可能想利用 GROUP BY 子句而不是在那里使用 DISTINCT,即:

SELECT productId, Size,
SUM(CASE WHEN storeID IN ('BCN', 'BCN2') THEN stock ELSE 0 END) AS stockBCN,
SUM(CASE WHEN storeID = 'MAD' THEN stock ELSE 0 END) AS stockMAD
FROM stocks
GROUP BY productId, Size

关于mysql - SELECT 语句中的子查询 (MySQL),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9298936/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com