错误1241(21000):操作数应包含1列-学校项目

h7wcgrx3  于 2021-06-21  发布在  Mysql
关注(0)|答案(1)|浏览(282)
SELECT naam, adres, postcode, plaats, telefoon  
FROM klanten 
WHERE plaats IN (SELECT * FROM(
                    (SELECT plaats, COUNT(plaats) AS W 
                     FROM klanten 
                     GROUP BY plaats 
                     ORDER BY W DESC LIMIT 1) AS T));

那么,我在哪里偷懒了?我的语法错误在哪里?或者我在说什么。
我的目标是打印姓名(naam),地址(adres),地点(plaats),电话(telefoon),从客户最多的城市(klanten)居住。在你问之前,我这样做是为了一个学校项目,我们必须使用mysql的旧版本,不允许在子查询中限制1。这就是为什么 Select * FROM 子查询是否存在错误。

px9o7tmv

px9o7tmv1#

您试图编写的查询如下所示:

SELECT naam, adres, postcode, plaats, telefoon
FROM klanten
WHERE plaats IN (SELECT plaats
                 FROM klanten
                 GROUP BY plaats
                 ORDER BY COUNT(*) DESC
                 LIMIT 1
                );

语法错误是因为 IN 子查询返回两列——这在消息中非常明显。子查询中的子查询不是必需的;你可以 ORDER BY 聚合表达式。
也, IN 有点误导。你可以用 = .

相关问题