Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/68.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_Mariadb - Fatal编程技术网

Mysql 分组方式为';不能使用子查询

Mysql 分组方式为';不能使用子查询,mysql,mariadb,Mysql,Mariadb,我有以下疑问 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 `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小提琴


它返回ID为1、2和3的记录,即使1和2在
表B中具有相同的值

这与mysql上不允许不正确使用group by的新版本有关

在查询中,您使用的是没有聚合函数的group by,这是不允许的

而不是公寓

SELECT `id` FROM `TableA` WHERE `color` LIKE '%red%' 
AND `id` IN (SELECT `id` FROM `TableB` GROUP BY `option`)
您应该为我们提供一个用于检索id的聚合函数,例如:

SELECT `id` FROM `TableA` WHERE `color` LIKE '%red%' 
AND `id` IN (SELECT min(`id`) FROM `TableB` GROUP BY `option`)

@MKhalidJunaid正确..我的回答与提供的问题密切相关..无论如何,与group by的问题保持不变