これらはどちらも動作しますが、これを書き込むにはより良い方法がありますか?最も効率的なSQL、DISTINCT、WHERE ... AND
1.
SELECT asset_id,
asset.category_id,
x,
y
FROM asset
INNER JOIN map_category
ON map_category.category_id = asset.category_id
WHERE asset.map_id = 5
AND map_category.map_id = 5
2.(DISTINCT
を追加しましたし、最後の行を削除)
SELECT DISTINCT asset_id,
asset.category_id,
x,
y
FROM asset
INNER JOIN map_category
ON map_category.category_id = asset.category_id
WHERE asset.map_id = 5
DISTINCT
または最後の行AND map_cate...
どちらかがなければ、私は3つのレコードを取得します。それぞれに1つ:
map_categoryテーブル
資産テーブル
EXPLAINはあなたの友達です:http://dev.mysql.com/doc/refman/5.0/ en/explain.html –
これらのクエリは同義ではなく、同じ結果をもたらす場合は偶然です。あなたは達成しようとしていることを説明していないので、より効率的な代替案を提案することは困難です。 – GarethD
私は外国人のキーが2つの列で構成されているとは誰も信じられません:( – Aprillion