2017-05-27 1 views
0

Groupistテーブルを使用してManyToMany関係にStatistiquecolleテーブルがあります。 idy1のGroupeにリンクされているStatistiqueColle行をすべて取得したいとします。クエリManyToManyジョインテーブルの結果が1つだけです

id1のGroupeにリンクされているすべてのStatistiqueColle行を選択できますが、id1のGroupeにリンクされている行もあります。他のグループ。ここで

は(statistiquecolle_groupeがstatistiqueコレと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 

私はドンが、1つのstatistiquecolle_groupe行がありますそのため、where句のみStatistiqueColle行を選択するには、行を数えるについて考えましたそれをやる方法は分かりません。

編集:表構造 enter image description here

+0

を動作するようになりまし.Hopeを試してみてください?。それは助けるだろう – nacho

+0

私はそれを追加しました。 –

答えて

0

この方法でそれを実行しようと、私は、参加してテーブルの順序を変更しているあなたはすでに持っていたので、左はどこでと句に参加し、削除設定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) 

が、それはあなたがあなたのテーブルの構造をアップロードすることができ

+0

私はそれを試して、id 1のgroupeにリンクされているすべてのStatistiqueColleの行を返します。 このグループにリンクされているグループと1つ以上のグループを除いて、 。 –

+0

さて、私は後でそれをやろうとします – nacho

+0

あなたは新しいバージョンを持っています。それを試してください – nacho

関連する問題