私は4つのテーブルを持っています(しかし、そのうちの3つだけをクエリします):
記事(記事は「アイテム」、タイプ6):* a_id、a_title、a_text *
キーワード(キーワードが記事用の場合、そのタイプは6です):* kw_id、kw_type *
キーワード _翻訳*kw_id、language_id、kw_name *
Conn_Item_Keyword(アイテムとキーワード間の多対多の接続テーブル):* kw_id、kw_type、item_id *
ID 15で英語(language_id = 1)の記事のすべてのキーワードを照会するとします。
私はこれを書くことができます:
SELECT * FROM Conn_Item_Keyword c
LEFT JOIN Keywords k ON (c.kw_id = k.kw_id)
LEFT JOIN Keywords_Translation tr ON (c.kw_id = tr.kw_id)
WHERE c.kw_type = 6 AND c.item_id = 15 AND tr.language_id = 1
しかし、キーワードをConn_Item_Keywordのすべての行に結合するため、非常に遅いように思われます。結合で複数の条件(c.kw_id = k.kw_id AND c.kw_type = 6 AND c.item_id = 15)を試しましたが、正しく理解できませんでした。
このクエリを書くための最良の方法は何ですか?