MYSQL - 基本查询 where + group by +having

标签 mysql join

SELECT dieet.snr, soort.nsnaam   FROM soort
JOIN dieet ON soort.snr = dieet.snr
JOIN voedsel ON dieet.voednr = voedsel.voednr 
WHERE voedsel.voednr = 22 
GROUP BY dieet.snr
HAVING COUNT(*) = 1 ;

where 条件弄乱了我的输出,我做错了什么

最佳答案

我怀疑您正在寻找只有一条记录“voednr = 22”的“snr”。您的查询正在获取恰好具有这样一个“voednr”的所有“snr”以及其他“voednr”。

让我建议以下查询:

SELECT dieet.snr, soort.nsnaam
FROM soort
JOIN dieet ON soort.snr = dieet.snr
JOIN voedsel ON dieet.voednr = voedsel.voednr 
GROUP BY dieet.snr
HAVING COUNT(*) = 1 and max(voedsel.voednr) = 22

这将为您提供只有 22 个的行。

关于MYSQL - 基本查询 where + group by +having,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13809764/

相关文章:

php - Mysql 子查询连接表

mysql - 如何在 UPDATE 查询中执行三个表 JOIN?

php - 加入后只识别已注册的群组?

mysql - Node js无法连接到本地数据库

php - 使 PHP 在提交表单后运行,而不重定向到另一个 PHP 页面来处理数据

c# - Entity Framework 数据库第一列未在模型中显示

sql - SELECT 语句帮助

sql - 计算左连接中连接的行数

仅当其他表中的字段满足条件时 MySQL UPDATE

MySQL选择问题