MySQLの "table_a":私は別のcompontentを追加するしかしこれらの3つのテーブルを結合するにはどうすればよいですか?
$term = mysql_real_escape_string($_GET['term']);
mysql_query("SELECT * FROM `table_a`
WHERE MATCH(`title`) AGAINST('$term' IN BOOLEAN MODE) LIMIT 0,5");
:
+----+-------+
| id | title |
+----+-------+
今、私はそうのような検索を行うことができます。
MySQLの "table_b":
+----+----------+
| id | category |
+----+----------+
MySQLの "table_c":だから
+------------+------------+
| table_a_id | table_b_id |
+------------+------------+
、私はtable_a応じにリンクされているtable_bに特定category
を探したいです〜table_c。
しかし、それは(それだけでtable_aに接続されているtable_cのいずれかのエントリが存在しないことが起こりことができるように)category
がtable_aにリンクされていることを必ずしもそうではありません。
と、私はどちらかtable_aにtitle
を検索できるようにしたいcategory
リンク table_a に存在する場合やcategory
table_b(その両方が可能であるべきで、そうcategory
shouldn title
、またはそれ以外の方法で上書きしてください)。しかしそれが不可能ならば、title
はcategory
を覆うべきです。
は、ここで私は今のところ思い付いたのですが、問題は、a)は、それが
bは動作しません
である)私はちょうど
$term = mysql_real_escape_string($_GET['term']);
mysql_query("SELECT a.*, LEFT JOIN (SELECT c.table_a_id FROM table_b AS b
, table_c AS c WHERE b.category = '$term' AND b.id = c.table_b_id)
AS d ON d.table_a_id = a.id FROM table_a AS a
WHERE MATCH(a.title) AGAINST('$term' IN BOOLEAN MODE) LIMIT 0,5");
を説明していたとして、それはtitle OR category
が含まれていません。 ご協力いただければ幸いです。
あなたのPHPコードを読んだだけで、あなたは '$ _GET [term]'をエスケープする必要があります。このように使用しないでください。 – Till
@Till私はちょうど上記のコードに含まれていません。しかし、感謝;)私は私の質問を更新します。 –
複数のカテゴリをタイトルに適用することは意図的なのですか? –