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));
那么,我在哪里玩耍?我的语法错误在哪里或者我正在努力。
我的目标是从大多数客户(klanten)居住的城市打印姓名(naam),地址(地址),地点(plaats),电话(电话)(电话)。在你问之前,我正在做这对于学校项目而言我们必须使用旧版本的MySQL,它不允许在子查询中使用LIMIT 1。这就是Select * FROM
存在子查询的原因。
答案 0 :(得分:2)
您尝试编写的查询如下所示:
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
有点误导。您可以使用=
。