我有3张桌子
集群
成绩
陪审团
陪审团表将给出一个分数,并将其保存到成绩表中。 我想在idjury的where子句中显示陪审团尚未评估的群集数据
我尝试使用简单的左联接 例如,我在成绩表中插入了1个数据
idcluster | idjury | point
1 | 1 | 300
集群表
idcluster | namecluster
1 | cluster a
2 | cluster b
3 | cluster c
陪审团表
idjury | namejury
1 | hary
2 | potter
以及我希望显示群集数据的代码,其中群集数据尚未使用“ idjury
不在其中”进行评估
SELECT cluster.namecluster, grade.point, grade.idjury
FROM `cluster`
LEFT JOIN grade
ON cluster.idcluster = grade.idcluster
WHERE idjury NOT IN (1) //how to display data clusters that have not been assessed by a jury table (by idjury)
这就是我想要的
idcluster | namecluster | point | idjury
2 | cluster b | null | null
3 | cluster c | null | null
不使用where子句时
idcluster | namecluster | point | idjury
1 | cluster b | 300 | 1
2 | cluster b | null | null
3 | cluster c | null | null
使用“ WHERE idjury NOT IN(1)”时,没有数据显示
答案 0 :(得分:0)
将条件放在on子句中,而不是在哪里
SELECT cluster.namecluster, grade.point, grade.idjury
FROM `cluster`
LEFT JOIN grade
ON cluster.idcluster = grade.idcluster
and idjury NOT IN (1)
答案 1 :(得分:0)
您应该在WHERE子句中添加OR idjury IS NULL
:
SELECT cluster.namecluster, grade.point, grade.idjury
FROM `cluster`
LEFT JOIN grade
ON cluster.idcluster = grade.idcluster
WHERE idjury NOT IN (1) OR idjury IS NULL