0

私の質問が意味をなさない場合は申し訳ありません。シナリオを詳しく説明します。

「要素」と呼ばれるMySQLテーブルがあります。そのテーブルには 2 つの MEDIUMINT フィールドがあり、1 つは「user_id」と呼ばれ、もう 1 つは「element_id」と呼ばれます。

テーブルに element_id=8 の行と element_id=9 の行があるユーザーを (一度に 1 つずつ個別にチェックして) 引き出したいと思います。

次のクエリを試しましたが、うまくいきません。何か案は?

SELECT * FROM elements WHERE user_id=2 AND (element_id=8 AND element_id=9)
4

3 に答える 3

1

ナンネのソリューションは機能します:

SELECT * FROM elements as e, elements as ee WHERE e.user_id=2 AND e.element_id=8 AND e.user_id=ee.user_id AND ee.element_id=9
于 2012-10-25T17:06:16.940 に答える
0

これ

a) "user_id" 値が 2 で "element_id" 値が 8 の行、b) "user_id" 値が 2 で "element_id" 値が 9 の行。

に変換します

(user_id = 2 AND element_id = 8) OR (user_id = 2 AND element_id = 9)

これは(あなた自身の試みに近い)と同じです

user_id=2 AND (element_id=8 OR element_id=9)
于 2012-10-25T15:29:51.393 に答える
0

Aleks G によると、彼の提案はうまくいくはずです。

SELECT * FROM elements WHERE user_id=2 AND (element_id=8 OR element_id=9)

user_id が "2" で、element_id が "8" (存在する場合) で、かつ element_id が "9" (存在する場合) であるすべての行を取得する必要があります。同じように"。

于 2012-10-25T15:52:04.550 に答える