4
シナリオは非常に単純である:MySQLは:IDがテーブルBに2(または任意のN)の行と一致した場合、表Aから選択
Table A:
+----+-------+-...
| id | title | ...
+----+-------+-...
Table B:
+------+-----+
| id_A | tag |
+------+-----+
:私はテーブルBにコンテンツのテーブルAのコンテンツとタグを持っています
私は、タグ「foo」を持っているA内のすべてのコンテンツの行を、選択したい:
SELECT A.* FROM A, B WHERE A.id = B.id_A AND B.tag = 'foo'
これまでのところ、それは簡単です。
私の問題がある:どのように私はタグ「foo」でとタグ「バー」の両方を持っているコンテンツの行を、選択することができますか?特に、どのように私は任意n > 1
ためn
タグ「FOO」、「バー」、...を持っている行を選択することができますか?
ソリューションは、Bにn
回に参加するだろうが、それは本当にパフォーマンスではないということ、それは悪い感じ、と私は想定しています。
私はMySQL、PHP、PDOをプリペアドステートメントで使用しているので、必要な文字列連結(「n
回の結合」ソリューションのような)がないソリューションがあれば、それが私のお気に入りです。
+1:ただし、なぜあなたはidsでの結合を避けたのですか? – VoodooChild
ありがとう、それは私が必要とする方法とまったく同じです。 – Boldewyn