我试图选择表中不存在的行。
student
,
cls
,
sec
,
sch
std_sch
. 在这里,我想从
哪些不在
附件
但是
左连接
具有
为空
正在返回空结果。
表
cls公司
-班级名单
id | ttl
===========
1 | One
2 | Two
表
秒
-章节列表
id | ttl
===========
1 | A
2 | B
表
附件
id | ttl
===============
1 | First
2 | Second
3 | Third
表
学生
id | ttl | cls | sec
===========================
1 | John| 1 | 1
2 | Paul| 1 | 0
表
sdt_sch
id | s_id| sdt_sch
=======================
1 | 1 | 1
Mysql代码
SELECT
student.id AS sid,
student.ttl AS stdt,
cls.ttl AS cls,
sec.ttl AS sec,
GROUP_CONCAT(sch.ttl) AS sch
FROM
student
JOIN
cls ON cls.id=student.cls
LEFT JOIN
sec ON sec.id=student.sec
LEFT JOIN
std_sch ON std_sch.s_id = student.id
LEFT JOIN
sch ON sch.id = std_sch.sch_id
WHERE
cls.id = 1
AND
std_sch.sch_id IS NULL
GROUP BY
student.id
预期结果
应该是这样的:因为第一奖学金(
sch - 1
)表中存在
sdt\ U sch公司
. 但这一行的结果是空的
sid | stdt| cls | sec| sch
============================================
1 | John| One | A | Second,Third
2 | Paul| One | A | First,Second,Third
我已附上
SQL Fiddle
也