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