誰でもこのクエリで私を助けることができますか? 3 つのテーブルがあります (A;B;C)
A <--1....N---> B <--1....N---> C
C.dates (最大) を持つすべての A 行が必要です
誰でもこのクエリで私を助けることができますか? 3 つのテーブルがあります (A;B;C)
A <--1....N---> B <--1....N---> C
C.dates (最大) を持つすべての A 行が必要です
SELECT A.*, MAX(C.dates)
FROM A
JOIN B ON B.A_fk = A.id
JOIN C ON C.B_fk = B.id
GROUP BY A.id
この JOIN は、LEFT 結合を持たない結果を除外します。つまり、A の行に B 行がない場合、または B の行に C 行がない場合、その行は表示されません。これを克服するには、JOIN の代わりに LEFT JOIN を使用できます。
SELECT A.*, MAX(C.dates)
FROM A
LEFT JOIN B ON B.A_fk = A.id
LEFT JOIN C ON C.B_fk = B.id
GROUP BY A.id
編集: C.data の最大値が必要であることに気づかなかったのは残念です。そこにあります。SELECT および GROUP BY A.id で MAX 関数を使用する必要があります。