我在与Groupe表的ManyToMany关系中有一个Statistiquecolle表。 我想得到所有与ID为1的Groupe链接的StatistiqueColle行。
我能够选择链接到ID为1的Groupe的所有StatistiqueColle行,但我也有链接到ID为1的Groupe和其他组合的行。
这里是我的查询(statistiquecolle_groupe是statistique colle和groupe之间的链接表):
SELECT sc.id, sc.colle_id, sc.effectif, sc.moyenne, sc.mediane, sc.note100, sc.major, sc.minor
FROM statistiquecolle sc
INNER JOIN statistiquecolle_groupe scg ON sc.id = scg.statistiquecolle_id
WHERE scg.groupe_id = 1
AND sc.id = scg.statistiquecolle_id
我考虑过计算where子句中的行,只选择StatistiqueColle行,其中有一个statistiquecolle_groupe行,但我不知道该怎么做。
答案 0 :(得分:0)
尝试以这种方式执行此操作,我已更改连接中的表顺序,设置左连接并删除where中的AND子句,因为您已在ON子句中使用它:
SELECT sc.id, sc.colle_id, sc.effectif, sc.moyenne, sc.mediane, sc.note100, sc.major, sc.minor
FROM statistiquecolle_groupe scg
LEFT JOIN statistiquecolle sc ON sc.id = scg.statistiquecolle_id
WHERE scg.groupe_id = 1 AND
sc.id NOT IN (SELECT sc1.id
FROM statistiquecolle_groupe scg1
LEFT JOIN statistiquecolle sc1 ON sc1.id = scg1.statistiquecolle_id
WHERE scg1.groupe_id != 1)
立即尝试。希望它有效