2016-06-01 8 views
0

Relevant section of ERDGROUP BYは、attrによってグループ化されていない場合でも、結合されたテーブルに影響します。他のテーブルに?

こんにちは。ほとんどの場合、私はGROUP BY句を除いてこのクエリの動作を理解しています。すべての行をそれ自身のグループに変換し、HAVING句を使用すると、前提ユニットを持つグループ(ユニット)はすべて削除されます。しかし、GROUP BYは、u.unitcodeと一緒にpr.unitcodeもグループ化することをどのように知っていますか?それは結合条件によって暗示されますか?私はそれが前提条件(PR)テーブル内の属性であるため、そうでない場合は、各グループのunitcodeためhas_prereq_of列をカウントする方法を知ることができるだろうか他に理解していないので。質問は理解することは少し難しいです場合

イム申し訳ありませんが、それは本当に概念だと私は言葉に、クエリについての私の混乱を回すのに苦労しました。

Q2。前提条件を持たないユニットのユニットコードとユニット名を表示します。

SELECT u.unitcode, unitname 
    FROM unit u LEFT OUTER JOIN prereq pr ON u.unitcode = pr.unitcode 
    GROUP BY u.unitcode, unitname 
    HAVING count(has_prereq_of) = 0; 

答えて

0

まず、テーブルを引き出して結合します。そこから行がグループ化されます。その後、それらはHAVINGによってフィルタリングされます。私はあなたが個々のテーブルを考えるよりむしろGROUP BYの前に構築されたセットで起こっているグループ化について考える必要があると思います。

+0

私はあなたがすることによって、従来のグループに構築セットで起こっグループ化を考えるように言ったとき、私はあなたを失ったごめんなさい。 –

関連する問題