, tabloların içeriği buradadır.Birden çok tabloya katılırken NULL değerleri nasıl döndürür
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 | |
+------------+------------------+------+-----+---------+-------+
Neyi başarmaya çalışıyorum öğrencilerin grade_event tablosundaki 'kategorisinde' altında bulunan bir test/testi, cevapsız hangi göstermektir.
İşte ben neye vardım ama hiçbir sonuç üretmiyorum;
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;
Ayrıca bir alt sorgunun yapılma yoluna gittim;
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 not in (select score from score)
group by name, event_id;
Herhangi bir yardım için teşekkür ederiz. Bu kesin group by sc.event_id
için yararlı olabilir http://dev.mysql.com/doc/refman/5.7/en/join.html
Ve group by event_id
ile ilgilenir:
, ama yine de sonuçların boş kümesi iade ediyorum: bir carthesian oluşturduktan sonra olaylarda karşılık gelen rekor öğrenci ve olayların katılmak. Alt sorgu ile, bu tamamen anlamlıdır. Sorgulamanın daha iyi bir yolu ne olurdu? –
İki birleştirmeyi soldan birleştirmek işe yaramıyor mu? Belki sql server ve MySQL arasındaki farklar, tablolarınızın nasıl oluşturulduğunu anladığımdan sqlde çalışır. Her neyse, @Shadow göründüğü bir çalışma çözümü sağladı – BD01