Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/63.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 选择所有聚合都满足特定条件的聚合根_Mysql_Sql - Fatal编程技术网

Mysql 选择所有聚合都满足特定条件的聚合根

Mysql 选择所有聚合都满足特定条件的聚合根,mysql,sql,Mysql,Sql,考虑以下情况 http://yuml.me/diagram/scruffy;/class/edit/[Order]++-1..*>[OrderItem] 现在,我想获取订单项,其中所有订单项的行OrderItems都有一个itemSum>100左右。或者对于一个更有意义的用例,不妨考虑 OrthItgs,它有一个属性 StassFiels,我想选择每个OrthItIt项目免费的订单。 如果我只是(左)加入它们,如果一个OrderItem与条件匹配,而不是所有条件匹配,则会显示订单 谢谢

考虑以下情况

http://yuml.me/diagram/scruffy;/class/edit/[Order]++-1..*>[OrderItem]

现在,我想获取订单项,其中所有订单项的行OrderItems都有一个
itemSum>100
左右。或者对于一个更有意义的用例,不妨考虑<代码> OrthItgs<代码>,它有一个属性<代码> StassFiels,我想选择每个OrthItIt项目免费的订单。 如果我只是
(左)加入它们,如果一个OrderItem与条件匹配,而不是所有条件匹配,则会显示订单

谢谢你的想法

案例1:

select
*
from
order o 
inner join orderItem oi on o.id = oi.orderId
group by o.id
having sum(items) > 100
案例2:

select
*
from
order o 
inner join orderItem oi on o.id = oi.orderId
group by o.id
having sum(property = 'shipsFree') = count(*)

实际上我对第二个案例很感兴趣,第一个案例我有点说错了。所以,你可以比较一下,条件匹配的项目的总和是否相同,对吗?我也已经考虑过了,但是我真的无法控制自己。。。所以,谢谢!对于
sum(property='shipsFree')
语法,您是否有一些文档参考?它返回符合条件的记录的总和,我想?而且,关于计数(*),这不算所有记录,即订单记录吗?这不是很重要吗(oi.orderId)?像
column='whatever'
这样的布尔比较返回
true
false
1
0
),因此它返回与条件匹配的记录之和。
count(*)
统计每组的所有记录,
count(*)
count(oi.orderId)
之间的唯一区别是,
count(*)
返回此组的行数,
count(oi.orderId)
将返回此组的行数,其中
orderId不为null
。我想你没有没有orderItem的订单吧?那没什么区别。太好了,谢谢你;您是否仍然有SUM()中可能的表达式类型的源?我认为ORM条令中有一个bug,为了证明这一点,我想看看参考资料。。。谢谢你误会我了。当然,它不需要布尔表达式。但是,在计算机字段中,只指定一个布尔表达式不返回1或0的区域。这是我的观点。也许你应该在这里创建一个关于你可能的bug的问题,然后从那里解决它。