0

のように書けるORDER BY revision_id DESC LIMIT 1ようにしたいのですが、それは節Having Max(revision_id)の近くに置きたいように動作しません。WHERE選択Max(revision_id)を入れると、リビジョン ID の最大値が返されますが、残りのフィールドはそれと一緒に使用する必要があるものではありません (結合内にあります)。

クエリ:

SELECT * FROM field_data_field_city
LEFT JOIN profile on(field_data_field_city.entity_id = profile.pid)
LEFT JOIN users on(profile.uid = users.uid)
WHERE users.uid = 1 
ORDER BY revision_id DESC
LIMIT 1`

一度に複数のユーザーに対して実行できるように、制限を取り除きたい

で試しました

GROUP BY users.uid
ORDER BY revision_id DESC

しかし、私は最低を取得しrevision_id、最高を望んでいます

4

2 に答える 2

0

以下を試すことができます:

WHERE revision_id=(SELECT MAX(revision_id) FROM table)
于 2012-06-21T03:29:08.580 に答える
0

フィールド rev_id がテーブル プロファイルにあると仮定すると、以下を使用できます。

SELECT *
FROM field_data_field_city
LEFT JOIN profile ON field_data_field_city.entity_id = profile.pid
LEFT JOIN users ON profile.uid = users.uid
WHERE profile.revision_id IN (
    SELECT MAX(p.revision_id)
    FROM profile p
    GROUP BY p.uid) T;
于 2012-06-21T07:45:08.350 に答える