ここにはテーブルの内容があります。私が達成しようとしている何複数のテーブルを結合するときにNULL値を返す方法
mysql> desc student;
+------------+------------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+------------+------------------+------+-----+---------+----------------+
| name | varchar(20) | NO | | NULL | |
| sex | enum('F','M') | NO | | NULL | |
| student_id | int(10) unsigned | NO | PRI | NULL | auto_increment |
+------------+------------------+------+-----+---------+----------------+
mysql> desc grade_event;
+----------+------------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+----------+------------------+------+-----+---------+----------------+
| date | date | NO | | NULL | |
| category | enum('T','Q') | NO | | NULL | |
| event_id | int(10) unsigned | NO | PRI | NULL | auto_increment |
+----------+------------------+------+-----+---------+----------------+
mysql> desc score;
+------------+------------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+------------+------------------+------+-----+---------+-------+
| student_id | int(10) unsigned | NO | PRI | NULL | |
| event_id | int(10) unsigned | NO | PRI | NULL | |
| score | int(11) | NO | | NULL | |
+------------+------------------+------+-----+---------+-------+
は、学生がgrade_eventテーブルの「カテゴリ」の下にクイズ/テストを、逃している表示することです。
ここで私が思いついたことはありますが、何も結果が得られていません。
select name, category, sc.event_id
from student s
join score sc on s.student_id=sc.student_id
join grade_event ge on sc.event_id=ge.event_id
where score is NULL
group by name, event_id;
私はサブクエリを試行するルートも行っています。
助けてください。
私は提案された変更を加えましたが、まだ空の結果セットを返しています。 サブクエリを使用すると、全体的に意味があります。クエリーするにはどうすればよいでしょうか? –
2つの結合を左結合で置き換えることはできません。たぶんそれはSQL ServerとMySQLの間の相違です、私はあなたのテーブルが作成される方法を理解するようにSQLで動作します。とにかく、@ Shadowは見た目のような解決策を提供しました – BD01