データ保存用のテーブル(a_table)に「category1」と「category2」のフィールドがあるとします。
カテゴリ用テーブルには「category_id」と「cate_name」のフィールドがあるとします。
1つのカテゴリを対象とする時は
SELECT category.cate_name FROM a_table INNER JOIN category ON a_table.category1=category.category_id
とすれば、category1の表示名をcategoryテーブルから読み込むことが出来ます。
では、category1とcategory2をcategoryテーブルと結合して表示するにはどうすればいいのでしょうか?
categoryテーブルを2つ結合する方法以外でありましたら、教えていただければと思います。
(MySQLは4.1.22を利用しています)
category1とcategory2をcategoryテーブルと結合して表示する
結果をどのように表示するかによりますね。
プログラムでの並び替えも含めてよければ、
SELECT category.cate_name FROM a_table INNER JOIN category WHERE a_table.category1 = category.category_id OR a_table.category2 = category.category_id
でも何とかなります。
これだと、「category1とcategory2のどちらかがcategory_idに含まれていれば表示する」
であり、category1とcategory2の表示名を出せないです。
あくまでもやりたいことは
category1=>categoryテーブルから一致するcate_nameを表示
category2=>categoryテーブルから一致するcate_nameを表示
を1つのSQLで行い、結果として出力されればと思います。
(つまり、一致するcate_nameが2つ表示される)