表:XYZ+----+-----------+--------+---------+|身份证 |parent_ID |状态 |user_ID |+----+-----------+--------+---------+|1 |432 |公共 |23 ||5 |432 |公共 |1 ||10 |432 |公共 |14 ||24 |432 |公共 |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
为 432,并且user_ID
该行的ID
。
我已经看到了这个答案并尝试过,但就我而言,我没有按ID
分组和最大值ID
不同。就我而言,一切都ID
.我知道我可以拥有它们,然后可以运行一个 foreach 以 PHP 方式获取最大的一个,但我认为单个 SQL 查询在这里要快得多。
任何帮助和建议将不胜感激。
试试这个:
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')