mysql - SQL-AND演算子を使用して複数のWHERE値を照会する方法

原文 mysql

私はSQL初心者で、これに対する答えを探していましたが、まだ見つかりません。たとえば、studentsという名前のテーブルからスコア80を取得したすべての学生をクエリしたいとします。どうすればいいですか?これまでこれを試しましたが、IN演算子はORに似ているように見えます。これは、いずれかのテストで80を獲得した全員の結果が得られるためです。

SELECT * FROM students
WHERE test_name IN ('Quiz','Midterm','Final')
AND test_scores='80';


事前のご協力ありがとうございます!

サンプルデータ:

 Test Name |  Student ID   |  Student Name  |  Test Score
 Quiz      |   10          |    Tom         |  80
 Midterm   |   50          |    Sally       |  70


私が取り戻したい結果は、3つのテストすべてで80を獲得した学生のすべての列です。遅延をお詫びしますが、メール通知が適切に機能していないようです。私はあなたに新しいと警告しました。推奨手順を試してみて、どのようになるかを確認します。報告します。
答え
1つの方法は、テストの意味を否定し、それらの生徒を除外することです。

SELECT * 
FROM students
WHERE student_id NOT IN (
    SELECT student_id
    FROM students
    WHERE test_name IN ('Quiz','Midterm','Final')
    AND test_scores != '80';
)
AND test_name IN ('Quiz','Midterm','Final')
関連記事

mysql - 自動インクリメントのMySQL更新コマンド[重複]

mysql - 縮小との照合を使用する場合のMySQL文字列プレフィックスの一致

mysql - MySQLInstallerConsole.exeとchaning datadirを使用したMYSQL 5.6.21のインストール

php - PHPを使用して複数のリストボックス値がMySQLデータベースに挿入されない

php - as3はPDOを使用してPHPにデータを送信します

php - 前のクエリの値を使用してより多くの結果を取得する

php - php mysql jQueryによる連鎖選択

php - 列の結果を変数に格納する

php - mysqlでの結合操作とともに、3つの列(city + streetaddress + state)の値に基づいて類似の住所レコードを選択します

mysql - 未定義の関数ejabberd_logger:info_msgの呼び出し