MySQL で複数のテーブルから選択する場合、次のクエリはどちらも同じ結果セットを返します。
これらのクエリの 1 つが他のクエリよりも優れているか、または効率的ですか? 小さなデータセット (各テーブルで約 2k 行) での私のテストでは、どちらもほぼ同じ実行時間で同じ結果セットを返します。
クエリ 1:
SELECT
*
FROM
products,
product_meta,
sales_rights
WHERE
(
products.id = product_meta.product_id
AND products.id = sales_rights.product_id
)
AND (...)
LIMIT 0,10;
クエリ 2:
SELECT
*
FROM
products
INNER JOIN product_meta ON products.id = product_meta.product_id
JOIN sales_rights ON product_meta.product_id = sales_rights.product_id
WHERE
(...)
LIMIT 0,10;