0

私は、カテゴリとユーザー ID に基づいて特定のエントリを除外する方法を見つけようとして、IF と CASE、および他の場所で見つかった他の多くの提案を行ったり来たりしてきました。テーブルuser_postsに多数のユーザーによる投稿が含まれているとします。user_IDカテゴリ「CAT_64」または「CAT_106」にある投稿について、=「MIRA76」に制限された結果を取得したいと考えています。ただし、他のカテゴリの他のユーザーによる結果を取得したい.

テーブルuser_posts

+----------+--------------+----------+-----------------+
| post_ID  | category_ID  | user_ID  |     content     |
+----------+--------------+----------+-----------------+
| 456FQ    | CAT_64       | MEK90    | TEXTUAL CONTENT |
| 754GD    | CAT_21       | MEK90    | TEXTUAL CONTENT |
| 616CZ    | CAT_106      | MIRA76   | TEXTUAL CONTENT |
| 714PA    | CAT_64       | MIRA76   | TEXTUAL CONTENT |
| 554WU    | CAT_26       | RON32    | TEXTUAL CONTENT |
| 451YD    | CAT_41       | RON32    | TEXTUAL CONTENT |
| 783TD    | CAT_21       | MIRA76   | TEXTUAL CONTENT |
| 156GL    | CAT_11       | MEK90    | TEXTUAL CONTENT |
| 274HD    | CAT_11       | HOM92    | TEXTUAL CONTENT |
+----------+--------------+----------+-----------------+

記入例では、カテゴリ「CAT_64」と「CAT_106」はuser_ID「MIRA76」によるもののみを採用し、その他のカテゴリについてはそのような制限はありません。どうすればこれを行うことができますか?ここで、最初のもの以外は理想的な結果です。

4

3 に答える 3

1

関数を使用して、ここでWHEREクエリ結果のドキュメントを制限できます

だからあなたは次のようなものを使うことができます

WHERE user_ID='MIRA76' AND (category_id = 'CAT_64' OR category_id = 'CAT_106')
于 2013-04-15T09:18:44.490 に答える
1
SELECT * 
FROM user_posts
WHERE (user_ID = 'MIRA76' AND category_ID IN('CAT_64','CAT_106')) 
       OR user_ID != 'MIRA76'

アップデート

私はあなたの投稿を非常に注意深く読み、仮定も適用したので、とにある他のユーザーの投稿を望まないようです。そうですか?はいの場合は、このクエリを試してください CAT_64CAT_106

SELECT * 
FROM user_posts
WHERE (user_ID  = 'MIRA76' AND category_ID IN('CAT_64','CAT_106')) 
   OR (user_ID != 'MIRA76' AND category_ID NOT IN('CAT_64','CAT_106'))
于 2013-04-15T09:21:11.980 に答える
0

ここにはいくつかのオプションがあります。

これを 2 つのクエリに分割し、出力を結合することができます。たとえば、制限された user_id を選択し、他のクエリ結果と組み合わせます (おそらく、以前に選択したものを除外します)。

また

CASE、OR、ANDなど、WHERE句で条件文を使用することを検討できます。

すでに試したコードを投稿すると、もう少し具体的に支援できるかもしれません。

于 2013-04-15T09:21:04.247 に答える