gpt4 book ai didi

mysql - 从一列中选择多行

转载 作者:行者123 更新时间:2023-11-29 00:04:25 24 4
gpt4 key购买 nike

下面是订单表

order_table     
product_id amount price
1 2 4
1 5 4
2 2 4
2 3 4
3 4 4
4 3 4
4 2 4
4 2 4
5 4 4
5 1 4
6 1 4
6 1 4

下面是我的值表

value_table 
product_id value
1 a
1 b
1 c
2 a
2 b
2 c
3 a
3 d
3 c
4 a
4 d
4 c
5 a
5 b
5 c
6 a
6 d
6 c

我要实现的是下表。

product_id  amount*price as total values
3 12 a,c and not equal to b
4 28 a,c and not equal to b
6 8 a,c and not equal to b

我确实知道,一旦您对 product_id 进行分组,它只会显示一个值 ='a' 或 'c'。很好,我正在寻找的是同时包含 a、c 但不想要值等于 = b 的 product_id 的产品所以总而言之,只有 3、4、6 应该分组显示,这样我就不会对相同顺序的重复项进行总结。

最佳答案

试试这个:

SELECT product_id,SUM(amount*price) as Totalprice
FROM order_table
WHERE product_id NOT IN
(SELECT product_id
FROM value_table
WHERE value='b')
GROUP BY product_id

解释:

内部查询选择一个值为 b 的 product_ids 列表。因此内部查询的结果为 (1,2,5)。

外部查询计算该列表中不存在的 product_ids 的价格总和。即,不在 (1,2,5) 的列表中

结果:

PRODUCT_ID  TOTAL
3 16
4 28
6 8

SQL Fiddle 中查看结果.

关于mysql - 从一列中选择多行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28200783/

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