MySQL クエリでかなり単純な 1 対多型の結合があります。この場合、左の表で結果を制限したいと思います。
たとえば、1 つのaccounts
テーブルと 1つのテーブルがあり、そこから 100 行を取得し、それぞれに関連するすべてのcomments
行を取得したいとします。accounts
comments
これを行う唯一の方法は、単に FROM を選択するのではなく、 FROM 句で副選択を使用することaccounts
です。これが私の現在の考えです:
SELECT a.*, c.* FROM
(SELECT * FROM accounts LIMIT 100) a
LEFT JOIN `comments` c on c.account_id = a.id
ORDER BY a.id
しかし、ある種の副選択を行う必要があるときはいつでも、中級レベルの SQL の知識では何か間違ったことをしているように感じます。
これを行うためのより効率的または高速な方法はありますか、それともかなり良い方法ですか?
ところで...
これは、これを行う最も簡単な方法かもしれませんが、答えとしては問題ありません。私は、速度の点で上記のステートメントと潜在的に競合する可能性のあるこれを行う別の方法があるかどうかを理解しようとしています.