私は3つのテーブルSTUDENT、SUBJECT、およびGRADEを持っています。別のテーブルに特定の値/条件を持つレコードを選択する方法
STUDENT
+------------+------------+------------+
| student_id | first_name | last_name |
+------------+------------+------------+
| 0 | Arthur | Pain |
| 1 | Richard | Gordon |
| 2 | Jennifer | Adelaide |
+------------+------------+------------+
SUBJECT
+------------+--------------+
| subject_id | subject_name |
+------------+--------------+
| 001 | Math |
| 002 | Science |
| 003 | English |
+------------+--------------+
GRADE
+-------------+-------------+--------+
| student_id | subject_id | grade |
+-------------+-------------+--------+
| 0 | 001 | A |
| 0 | 002 | B |
| 0 | 003 | A |
| 1 | 001 | B |
| 1 | 002 | A |
| 1 | 003 | F |
| 2 | 001 | A |
| 2 | 002 | B |
| 2 | 003 | B |
+-------------+-------------+--------+
私は、以下のクエリを試してみました。
SELECT * FROM student st WHERE EXISTS
(SELECT 1 FROM grade g WHERE st.student_id = g.student_id AND g.grade IN ('A','B');
私は成績だけで 'A' または 'B' を持つ学生を選択します。
'*'と "1" を交換してみてください。 g.gradeの代わりにGradeを直接使うことができます –
@jasinthpremkumarなぜ '1'を' * 'に置き換えますか?すべての列は必要ありません。 – Eric
すべての列が必要です –