1

エントリが分類されているかどうか(クエリA)、またはエントリが特定のデータと関係があるかどうか(クエリB)を確認する必要があります。2つの別々のクエリではなく、1つのクエリでこれを実行したいと思います。例えば:

[if query A OR query B ]
   <p>Show this content</p>
[/if]

2つのselectクエリが正しく機能していますが、互いに独立しているだけです。彼らです:

クエリA:

SELECT entry_id FROM exp_category_posts WHERE entry_id = '999' AND cat_id IN(SELECT cat_id FROM exp_categories WHERE group_id = '5') LIMIT 1

クエリB:

SELECT entry_id FROM exp_matrix_data WHERE field_id = '19' AND col_id_7 <> '' AND entry_id = '999'

繰り返しになりますが、これら2つのクエリを1つのクエリにまとめて、エントリ999が特定のカテゴリに分類されているか(クエリA)、特定のデータと関係があるか(クエリB)を確認します。これを行うための最良の方法は何ですか?

それが役立つ場合は、クエリはExpressionEngineデータベースで実行されています。

免責事項:MySQLステートメントを組み合わせる方法についてSOに関する質問がたくさんあることは知っていSELECTますが、この特定のクエリに関するヘルプを探していますが、自分と同じような質問は見つかりませんでした。重複した質問の神々をうっかり怒らせてしまった場合は、事前にお詫び申し上げます。

4

1 に答える 1

2

あなたのエントリは 2 つの異なるテーブルから来ており、あなたの要求を理解しているように、両方に存在する必要はありません。MySQL ではサポートされていない でFULL OUTER JOINそれを行う必要があります。OR

ただし、 a を使用しUNIONて目的の結果を得ることができます。

SELECT entry_id FROM exp_category_posts WHERE entry_id = '999' AND cat_id IN(SELECT cat_id FROM exp_categories WHERE group_id = '5') LIMIT 1
UNION DISTINCT
SELECT entry_id FROM exp_matrix_data WHERE field_id = '19' AND col_id_7 <> '' AND entry_id = '999'
于 2012-09-27T18:24:19.450 に答える