mysql - 从相关表中选择最大值

标签 mysql sql

在我的应用程序中,我想从表 1 中选择所有数据以及相关表 2 的最大 ID。问题是,如果表 2 中有一个实体,则 SQL 工作正常。但如果不是,则 restulset 将填充 NULL:

SELECT table1.*, CONCAT(table1.number, '-', table1.item_id) AS IdNumber, MAX(table2.id) AS Table2Id
  FROM table1
  LEFT JOIN table2 ON (table1.ID = table2.EQUIP_ITEM_ID)
WHERE table1.GROUP_ID > 0
  AND table2.IN_PROGRESS = 1
ORDER BY table1.ID ASC
LIMIT 15 

我需要更改什么才能检索到正确的结果集?

最佳答案

试试这个:

SELECT table1.*, CONCAT(table1.number, '-', table1.item_id) AS IdNumber, MAX(IFNULL(table2.id),0) AS Table2Id
  FROM table1
  LEFT JOIN table2 ON (table1.ID = table2.EQUIP_ITEM_ID)
WHERE table1.GROUP_ID > 0
  AND table2.IN_PROGRESS = 1
ORDER BY table1.ID ASC
LIMIT 15

关于mysql - 从相关表中选择最大值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11456394/

相关文章:

php - SQL 选择具有匹配值的行

mysql - 如何验证特定表字段的内容是否单义?

sql - 外部查询先于内部查询运行

php - Laravel Eloquent 查询顺序按时间字段的 DESC 和 AM/PM

php - 如何为我的网站db中的mysql数据库表授予 super 权限

php - PDO MYSQL 插入语句不起作用(未给出错误)

mysql - 删除 mysql 表中 100 之后的所有行(没有 auto_increment)

Java PreparedStatement 和 ON DUPLICATE KEY UPDATE : how do I know whether row was inserted or updated?

php - 需要通过 php 从文本文件中删除/清理垃圾字符

php - MySQL/Eloquent 通过左连接强制 id,即使为 null