2
テーブル:私はそれを使用してSQLを介して、またはプログラムによって、次のグループ化を達成することが可能かどうかを知りたい複数行ごとにグループ
org1 | org 2 | class
--------+---------+------------------
ENGLISH | ENGLISH | English 101
ENGLISH | ENGLISH | English 220
ENGLISH | COMM | Communication 360
ENGLISH | HISTORY | History 362
HISTORY | ENGLISH | English 366
:
a: org1, class, class_id
b: org2, class, class_id
私はleft outer join b on a.class_id = b.class_id
結果をしました上の結果データセット?
ORG: ENGLISH
-----------------
English 101
English 220
Communication 360
History 362
English 366
-----------------
ORG: HISTORY
-----------------
English 366
History 362
-----------------
COMM
-----------------
Communication 360
- ENGLISH ORG1またはORG2を持つ任意のクラスはENGLISH組織の下に表示されるはずです。
- HISTORY org1またはorg2を持つクラスは、HISTORY orgの下に表示されます。
- COMM org1またはorg2を持つクラスは、COMM orgの下に表示されます。
- 他の組織(Communication 360はENGLISH/COMMの両方)を持っている場合、の下に ENGLISH orgとCOMM orgの両方に表示されます。
SELECT org1 AS org, class FROM a UNION ALL SELECT org2 AS org, class FROM b ORDER BY org, class;
ORDER BY
が結果に適用されます:あなたはサブクエリを必要としない(ゴードン):
SELECT t.org, t.class FROM ( SELECT org1 AS org, class FROM a UNION ALL SELECT org2 AS org, class FROM b ) t ORDER BY t.org, t.class
EDIT:
サブクエリは不要です。 –