mysql 多対多リレーション時のデータ呼び出しについて質問いたします。
以下のような構造になっていたとします。
###kiji(記事)
-------------------------------- | kiji_id | kiji_name | -------------------------------- | 1 | オムライスの作り方 | -------------------------------- | 2 | フライパンの選び方 | --------------------------------
###relation_k_t(中間テーブル)
-------------------------------- | tag_name | tag_id | -------------------------------- | 1 | 1 | -------------------------------- | 1 | 2 | -------------------------------- | 2 | 2 | -------------------------------- | 2 | 3 | --------------------------------
###tag(タグ)
-------------------------------- | tag_id | tag_name | -------------------------------- | 1 | 料理 | -------------------------------- | 2 | テクニック | -------------------------------- | 3 | 買い物 | --------------------------------
###HTMLへ出力したい内容
-------------------------------- オムライスの作り方 [料理] [テクニック] -------------------------------- フライパンの選び方 [料理] [買い物] -------------------------------- 以下、300件ぐらい
このように出力させようとしています。
しかし、以下のようになってしまい困っています。
###呼び出しパターン1:LEFTJOINを使用した場合
-------------------------------- オムライスの作り方 | 料理 -------------------------------- オムライスの作り方 | テクニック -------------------------------- フライパンの選び方 | 料理 -------------------------------- フライパンの選び方 | 買い物 --------------------------------
タグ分出力されてしまう。
###呼び出しパターン2:LEFTJOIN&DISTINCTを使用した場合
-------------------------------- オムライスの作り方 | 料理 -------------------------------- フライパンの選び方 | 料理 --------------------------------
タグが足りない。
###呼び出しパターン3:ループで回す。毎回呼ぶ。
-------------------------------- オムライスの作り方 > SQL文タグ呼び出し -------------------------------- フライパンの選び方 > SQL文タグ呼び出し --------------------------------
処理が膨大になりそうで怖い。
合理的なSQL文がありましたらお教えください。
よろしくお願いいたします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/12/22 06:50