2016-07-16 1 views
0

私は何をする必要があるのか​​一般的な考えを持っていますが、私はそれがどうやって行うのか分かりません。

私は私が何を意味するかの例をあげる:
は、私はテーブルmediaTableからのTAG_ID年代、ととメディアを選択しようとしていると言います私はそれが私が唯一film1しかし、私を取得したい

enter image description here

私はそれを信じているので、私は、私は実際には何も得ることはありません代わりのORでそれを書いた場合、私は、とBOOK1film1の両方を取得し、
SELECT media FROM mediaTable WHERE tag_id = 15 OR tag_id = 4 OR tag_id=9

:F私はこのような文を書きますそれぞれ異なるtag_idの3つの異なる列を探しています。tag_idのレコードが1つあります。 内のステートメントを使用して

OR文とまったく同じ位置に私を得たと、それを、私は(IF を使用することができる可能性があること以外にはより多くのアイデアを持っていない)、私はわからないよたとえこれがどのように適用されるかについて。私が探しています

結果は、私がPHPMyAdminの中でそれらをテストしておりますがちょうどので、私は迅速にテストすることができ、ちょうどfilm1また
複数列の1つの列にあるセルの再帰をカウントするMySQL結果

私はPHP 7.0でクエリを実行していますです

任意の提案ます感謝する。ありがとう。

+0

です! – Cherif

+0

正確に何を探しているのかを単語で説明できますか?私は意味します:あなたのテーブルを与えられた場合、どの行を持っている(または持っていない)のかを私にどのように説明しますか? 「タグ4,15または9のエントリが必要です」と言えば、film1とbook1の両方を含めて6行を返さないようにする必要はありません。したがって、いくつかの追加基準が必要です。 – Solarflare

+0

MySQLの結果では、すべての3 ** tag_id **と一致する**メディア**セルが必要です。** film1 ** ** tag_id ** ** 15 **、** 4 **と** 9 **は側面** film1 **にあります。 – Fate

答えて

1

は、いくつかのソリューションがありますが、最短で結果がどうあるべきかに置くことができ、おそらく

select media 
from mediaTable 
where tag_id = 15 OR tag_id = 4 OR tag_id=9 
group by media 
having count(distinct tag_id) = 3 
+0

ありがとう! PHPで少し編集するだけで、これは私が必要とするものとまったく同じです! – Fate

関連する問題