3

私は次のようなクエリを持っています: (番組はテレビ番組と IMDB ID を持つテーブルであり、recommended_titles は IMDB_ID を持つ 2 つの列を持つテーブルです)

Select t2.* from shows t, shows t2, recommended_titles WHERE 
t.imdb_id = recommended_titles. title_id_1 
AND recommended_titles.title_id_2=t2.imdb_id 
AND t.imdb_id = 0367279 LIMIT 7

クエリは問題ありませんが、2 番目の列にも表示される可能性があるのに、最初の列でのみ imdb ID をチェックしていることに気付きました。だから私は以下を追加しようとします:

OR
recommended_titles.title_id_2=t.imdb_id 
AND t.imdb_id = recommended_titles. title_id_1 
AND t.imdb_id = 0367279 LIMIT 7

ただし、OR は AND と一緒に使用できないようです。

これをどのように行うべきかについての提案はありますか?

編集:私がやろうとしていることを説明するために、上記の説明がわかりにくい場合の簡単な例を次に示します。テーブルには、次のような行が示されています。

name of a tv show | 00001
name of another   | 00002
name of another   | 00003

表 おすすめのタイトルは (ID はどちらの列にもある可能性があることに注意してください)

00001 |  00002
00002 |  00003
4

3 に答える 3

8

mysqlで演算子の優先順位ANDを確認するか (よりも優先順位が高いことを確認してくださいOR)、または括弧を使用することができます (使用と保守がはるかに簡単です)。

(t.imdb_id = recommended_titles.title_id_1 OR
recommended_titles.title_id_2=t.imdb_id)

AND recommended_titles.title_id_2=t2.imdb_id 
AND t.imdb_id = 0367279 LIMIT 7
于 2013-06-07T08:34:52.607 に答える
0

こうやって、

(recommended_titles.title_id_2=t.imdb_id 
      OR t.imdb_id = recommended_titles. title_id_1)
AND t.imdb_id = 0367279 LIMIT 7
于 2013-06-07T08:37:15.393 に答える
0
(t.imdb_id = recommended_titles. title_id_1 
OR recommended_titles.title_id_2=t.imdb_id )
AND t.imdb_id = 0367279 LIMIT 7

括弧を使用して、優先度の条件をグループ化します。

于 2013-06-07T08:41:53.497 に答える