gpt4 book ai didi

mysql - 选择复杂查询到现有列

转载 作者:太空宇宙 更新时间:2023-11-03 12:22:04 26 4
gpt4 key购买 nike

我有一个表,其中一列非常依赖于一堆其他表

我不能更改表,也不能更改所用参数的名称

这是我的查询:

select *,(select sum(itemQuantity*(select itemPrice from Items where 
Items.itemID=OrderItems.itemID)) from OrderItems
where OrderItems.orderNumber=Orders.orderNumber) as orderValue,
(select sum(itemQuantity) from OrderItems where OrderItems.orderNumber=Orders.orderNumber)
as orderItemQuantity from Orders WHERE Orders.customerId =1 AND Orders.beenSupplied =1

这是查询的结果:

enter image description here

如您所见,我有两次“orderValue”列第一个 orderValue 是 Orders 表的原始列,第二个 orderValue 来自查询中的“as”子句

我如何合并两列并在其中包含查询的输出,而不是不断插入的 0?

编辑:表结构: enter image description here enter image description here enter image description here

最佳答案

与其使用 SELECT *,不如明确列出您希望选择的列(来自您的 Orders 表)。

您还可以通过在最外层查询中连接表然后对每个顺序进行分组来避免使用(非常低效的)相关子查询。

SELECT   Orders.orderNumber,
Orders.customerId,
Orders.orderDate,
Orders.beenSupplied,
Orders.purchaseDate,
SUM(OrderItems.itemQuantity * Items.itemPrice) AS orderValue,
SUM(OrderItems.itemQuantity) AS orderItemQuantity
FROM Orders
JOIN OrderItems USING (orderNumber)
JOIN Items USING (itemID)
WHERE Orders.customerId = 1
AND Orders.beenSupplied = 1
GROUP BY Orders.orderNumber

关于mysql - 选择复杂查询到现有列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19468336/

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