Table: XYZ +----+-----------+--------+---------+ | ID | parent_ID | status | user_ID | +----+-----------+--------+---------+ | 1 | 432 | public | 23 | | 5 | 432 | public | 1 | | 10 | 432 | public | 14 | | 24 | 432 | public | 4 | +----+-----------+--------+---------+
如果这是ID
是自动增量字段的情况,我可以通过以下查询获取最后一个ID:
SELECT MAX(ID)
FROM XYZ
WHERE parent_ID = 432
AND status = 'public'
如何使用单个查询抓取两个字段:ID
和user_ID
,以便我可以获得以下结果:
array(
'ID' => 24
'user_ID' => 4
)
这意味着ID
的最大值,其中parent_ID
为user_ID
行的432和ID
。
我看过this answer并试过了,但就我而言,我没有按ID
分组和最大ID
分组。就我而言,一切都是ID
。我知道我可以拥有它们,然后可以运行foreach以PHP方式获取最大值,但我认为单个SQL查询在这里要快得多。
非常感谢任何帮助和建议。
答案 0 :(得分:1)
试试这个:
SELECT ID, user_ID
FROM XYZ AS x
INNER JOIN (SELECT MAX(ID) AS maxID
FROM XYZ
WHERE parent_ID = 432 AND status = 'public') t
ON x.ID = t.maxID
或者,或者:
SELECT ID, user_ID
FROM XYZ
WHERE ID = (SELECT MAX(ID) AS maxID
FROM XYZ
WHERE parent_ID = 432 AND status = 'public')