すべての学生の合計学生のクエリ数、学生の名前、選択科目の合計数は、すべてのコースのグレード
分析:この質問は明らかにのみ使用し、SCと学生二つのテーブル、これらの共同調査の二つのテーブル、および結果を操作する選択科目の合計数の合計は、対象SCテーブルですされているので、我々は、フィールドでのテーブルrを、構築することができます選択科目と実績の総数の合計だけでなく、SID、学生のテーブルと、その後の共同問い合わせ
Rのビルドテーブル
選択sc.sid、合計(sc.score)として scoresum、カウント数(sc.cid)としてcoursenumber から皮下 sc.sidによるグループ。
クエリ結果:
+ ------ + ---------- + -------------- + | SID | scoresum | coursenumber | + ------ + ---------- + -------------- + | 01 | 269.0 | 3 | | 02 | 210.0 | 3 | | 03 | 240.0 | 3 | | 04 | 100.0 | 3 | | 05 | 163.0 | 2 | | 06 | 65.0 | 2 | | 07 | 187.0 | 2 | + ------ + ---------- + -------------- +
学生との共同問い合わせ:
選択student.sid、student.sname、r.coursenumber、r.scoresum からの学生を、 (選択 sc.sid、和(sc.score)として scoresum、カウント(sc.cid)として coursenumber からSC sc.sidによるグループ)R ここ student.sid = r.sid。
クエリ結果:
+ ------ + -------- + -------------- + ---------- + | SID | SNAME | coursenumber | scoresum | + ------ + -------- + -------------- + ---------- + | 01 |チャオ・レイ| 3 | 269.0 | | 02 |マネーパワー| 3 | 210.0 | | 03 |日風| 3 | 240.0 | | 04 |李ユン| 3 | 100.0 | | 05 |周メイ| 2 | 163.0 | | 06 |ウーラン| 2 | 65.0 | | 07 |鄭竹| 2 | 187.0 | + ------ + -------- + -------------- + ---------- +
この事実に、結果が出てきた、いくつかの学生が選択科目ではないことを示す、しかし、私たちの学生を考えるために少し必要がある場所は、実際に13を持っていますが、ここでの唯一の7に登場し、ここでのクエリは明らかに無視されますこれは、厳格なのいくつかは、我々は他の科目の学生が考慮され、それを必要としなかったそうだとすれば、我々は何の科目与えない学生にはnull値に参加できます。
すべての学生のテーブルの学生のSIDとSNAMEをまずチェックしてください
選択 student.sid、student.sname からの学生を。
クエリの結果。
+ ------ + -------- + | SID | SNAME | + ------ + -------- + | 01 |チャオ・レイ| | 02 |マネーパワー| | 03 |日の風| | 04 |李ユン| | 05 |周メイ| | 06 |ウーラン| | 07 |鄭竹| | 09 |ジョー・スミス| | 10 |ジョン・ドウ| | 11 |ジョン・ドウ| | 12 |趙6 | | 13 | SUN 7 | + ------ + -------- +
次いで、第一の方法、同じ合計スコアを取り出し、被験者の数をチェックしてください
選択sc.sid、合計(sc.score)として scoresum、カウント数(sc.cid)としてcoursenumber から皮下 sc.sidによるグループ。
クエリ結果:
+ ------ + ---------- + -------------- + | SID | scoresum | coursenumber | + ------ + ---------- + -------------- + | 01 | 269.0 | 3 | | 02 | 210.0 | 3 | | 03 | 240.0 | 3 | | 04 | 100.0 | 3 | | 05 | 163.0 | 2 | | 06 | 65.0 | 2 | | 07 | 187.0 | 2 | + ------ + ---------- + -------------- +
二人はその後、左のクエリ結果、クエリに参加します:
選択s.sid、s.sname、r.coursenumber、r.scoresumを から( (選択student.sid、student.sname から学生 )■ 左結合します (選択 sc.sid、和(sc.score)として scoresum、カウント(sc.cid)としてcoursenumber からSC sc.sidによってグループ )R s.sid上 = r.sid );
最終結果:
+ ------ + -------- + -------------- + ---------- + | SID | SNAME | coursenumber | scoresum | + ------ + -------- + -------------- + ---------- + | 01 |チャオ・レイ| 3 | 269.0 | | 02 |マネーパワー| 3 | 210.0 | | 03 |日風| 3 | 240.0 | | 04 |李ユン| 3 | 100.0 | | 05 |周メイ| 2 | 163.0 | | 06 |ウーラン| 2 | 65.0 | | 07 |鄭竹| 2 | 187.0 | | 09 |ジョー・スミス| NULL | NULL | | 10 |ジョン・ドウ| NULL | NULL | | 11 |ジョン・ドウ| NULL | NULL | | 12 |趙6 | NULL | NULL | | 13 | SUN 7 | NULL | NULL | + ------ + -------- + -------------- + ---------- +
上記