以下の列を持つ3つのテーブルが与えられます...
テーブル (列)
A (a_pk、b_pk、その他)
B (b_pk、a_pk、c_pk)
C (c_pk、b_pk、日付)
(コメント: pk は主キー、date は日付)
...選択しようとしています...
A.a_pk、A.other、C.date
...次の制限があります。
max(B.b_pk) B.a_pk によるグループ化 (すべての A.a_pk に対して B.b_pk の最大値のみを選択)
A.other = 'something' (単なる WHERE の例)
ORDER BY C.date (最新の日付順)
以下は成功しなかった1つの試みです(他のものはさらに失敗しているように見えました)
SELECT A.a_pk, A.other, C.date
FROM A, C
WHERE
A.other = 'something'
AND
A.a_pk IN
(
SELECT max(B.b_pk), B.a_pk, B.c_pk, C.date
FROM B
INNER JOINT C ON C.b_pk = B.b_pk
GROUP BY B.a_kp
)
ORDER BY C.date DESC
それはどのように行われるべきですか?