複数テーブルからLIKE検索を行いたいのですが、う
複数テーブルからLIKE検索を行いたいのですが、うまくいかないので教えてください
■やりたいこと
・一つのキーワードで、MAINテーブル「hoge」カラムと、SUBテーブル「hoge」カラムを検索して、該当したレコードを表示したい
■テーブル構成
・MAIN … 「id」「main1」「hoge」…
・SUB… 「sub_id」「main_id」「sub1」「hoge」…
・1つの「id」に対して、対応する「sub_id」が複数(「id」1は一つだけ。対応する「sub_id」1は複数あります)
■試したこと1
SELECT a.* , r.*
FROM main a
LEFT JOIN sub r ON a.id = r.main_id
WHERE (
a.hoge LIKE '%キーワード%'
OR r.hoge LIKE '%キーワード%'
)
とやると、2件ヒットするはずなのに、1レコードしか取得できません(1レコードに「hoge」カラムが2つ入ります)
■試したこと2
SELECT a.* , r.hoge as rhoge
FROM main a
LEFT JOIN sub r ON a.id = r.main_id
WHERE (
a.hoge LIKE '%キーワード%'
OR r.hoge LIKE '%キーワード%'
)
とやると、2件ヒットするはずなのに、1レコードしか取得できません(1レコードに「hoge」と「rhoge」カラムになります)
■試したこと3
FROMで2箇所指定するのかと思ったのですが、
SELECT a.* , r.*
FROM (main a,sub r)
LEFT JOIN r ON a.id = r.main_id
WHERE (
a.hoge LIKE '%キーワード%'
OR r.hoge LIKE '%キーワード%'
)
結果は、#1066 - Not unique table/alias: 'r'になります
■試したこと4
LEFT JOINがいらないのかと思い、削除したら、2件ヒットするはずなのに、たくさんヒットしてしまいます
■質問
欲しいのは、キーワード検索した際、該当カラムにヒットした数だけのレコードなのですが、どうすれば良いのでしょうか?
■例
・東京で検索
・MAINテーブル「hoge」カラム(2レコード)で2ヒット
・SUBテーブル「hoge」カラム(3レコード)で3ヒット
・ヒットした該当5レコードを取得したい
お礼
これは思いついたんですけど、プレミアム登録しないと枠が3つ増えるだけなのであんまり効率が良くないんですよね・・・