我有以下问题
SELECT `id` FROM `TableA` WHERE `color` LIKE '%red%'
AND `id` IN (SELECT `id` FROM `TableB` GROUP BY `option`)
运行此查询时,得到的结果与运行
SELECT `id` FROM `TableA` WHERE `color` LIKE '%red%'
AND `id` IN (SELECT `id` FROM `TableB`)
我有400多张唱片。但是,如果我跑
SELECT `id` FROM `TableB` GROUP BY `option`
我有18张唱片。
我已经有一段时间没有运行这个查询了,但我记得它正在运行。从上次运行到现在发生的唯一变化是我从mysql 5.5(或5.6)升级到mariadb 10.1。知道它为什么停止工作了吗?
这是sql小提琴http://sqlfiddle.com/#!9/440224/1
它返回ID为1、2和3的记录,即使1和2在中具有相同的值 TableB
1条答案
按热度按时间t9aqgxwy1#
这与mysql上的新版本有关,该版本不允许不正确地使用group by。。
在查询中,您使用的是没有聚合函数的groupby,这是不允许的
而不是公寓
你应该给我们一个aggegation函数来检索id,例如: