在我的应用程序中,我想从表 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/