2

以下に、生徒の記録、科目、および科目のある生徒を示す 3 つの表を示します。

以下の結果を表示するための効果的な SQL クエリは何かお聞きしたいです。JOIN を使用して表示できますが、以下の形式では表示できません。

+-----+----------+-----------+-----+----------+- ----------+--------+
| | 名前 | 住所 | 電話 | セックス | 科目 | 先生 | 先生 アクティブ |
+-----+----------+-----------+-----+----------+- ----------+--------+
| | ジョン | ジョン | どこか | 12345 | み | | | 教師 1 | はい |
| | ジョン | ジョン | どこか | 12345 | み | 数学 | | | はい |
| | ジョン | ジョン | どこか | 12345 | み | 科学 | | | はい |
| | ジョン | ジョン | どこか | 12345 | み | 英語 | | | はい |
| | マット | どこか | 123456 | み | | | 教師 2 | はい |
| | マット | どこか | 23456 | み | 数学 | | | はい |
| | マット | どこか | 123456 | み | 科学 | | | はい |
| | 女の子 | どこか | 5431 | ふ | | | 先生3 | はい |
| | 女の子 | どこか | 5431 | ふ | 物理学 | | | はい |
| | 女の子 | どこか | 5431 | ふ | 数学 | | | はい |
+-----+----------+-----------+-----+----------+- ----------+--------+

select * from student_record;
+------------+------+-----------------+----------- +-----+----------+--------+
| | id_student | 名前 | 住所 | 電話 | セックス | 先生 | アクティブ |
+------------+------+-----------------+----------- +-----+----------+--------+
| | 1 | ジョン | ジョン | どこか | 12345 | み | 先生 | 先生 0 |
| | 2 | マット | どこかで | 12345222 | み | 教師1 | 0 |
| | 3 | 女の子 | ここのどこか | 3333 | ふ | 先生2 | 0 |
+------------+------+-----------------+----------- +-----+----------+--------+

件名から * を選択します。
+------------+--------------+--------------------- +
| | id_subject | subject_name | 件名_説明 |
+------------+--------------+--------------------- +
| | 1 | 数学 | 数学 |
| | 2 | 科学 | 科学 |
| | 3 | 英語 | 英語 |
| | 4 | 物理学 | 物理学 |
+------------+--------------+--------------------- +

select * from_subjects;
+--------------------+--------------------+---------------------- ------+
| | id_student_subject | Student_id_subject | 学生ID |
+--------------------+--------------------+---------------------- ------+
| | 1 | 1 | 1 |
| | 2 | 2 | 1 |
| | 3 | 3 | 1 |
| | 4 | 4 | 1 |
| | 5 | 4 | 2 |
| | 6 | 3 | 2 |
| | 8 | 1 | 2 |
| | 9 | 1 | 3 |
| | 10 | 2 | 3 |
| | 11 | 3 | 3 |
| | 12 | 4 | 3 |
+--------------------+--------------------+---------------------- ------+
4

1 に答える 1

1

どうですか

a.name を「Name」、a.address を「Address」、a.telephone を「Telephone」、a.sex を「Sex」、null を「Subject」、a.teacher を「Teacher」、a.active を選択します。ユニオンとしてのstudent_recordからの「アクティブ」としてas "Teacher",a.active as "Active" from (student_record as a inner join with_subjects as c on a.id_student = c.student_id) inner join subjects as b on c.student_id_subject = b.id_subject

テストしていません。あなたの例と同じ順序ではありませんが、すべてのデータがそこにあるはずです

于 2012-09-25T11:30:24.703 に答える