Bagaimana cara mendapatkan banyak baris dari satu baris tabel?

Hai, saya punya dua tabel dengan struktur berikut

Siswa

 +------+------+------+-------+------+------+
| Col1 | Col2 | Col3 | Col4  | Col5 | Col6 |
+------+------+------+-------+------+------+
|   01 | Hari | 20   |    80 |   21 |   81 |
|   02 | Nari | 20   |    67 |   21 |   76 |
|   02 | Lari | 25   |    87 |   26 |   96 |
+------+------+------+-------+------+------+

Di sini COl1= ID, Col2= Nama,Col3= SubjectCode, COl4= Tanda di Col3, Col5= subjectCpde, Col6= Tanda untuk Col5

Dan tabel lainnya disebut mata pelajaran

+------+-----------+
| Col1 |   Col2    |
+------+-----------+
|   20 | English   |
|   21 | Maths     |
|   25 | Chemistry |
|   26 | Physics   |
+------+-----------+

Disini Col1= Kode Mata Pelajaran, COl2= Nama Mata Pelajaran yang diacu pada tabel siswa.

Sekarang permintaan saya akan mengembalikan hasil sebagai berikut. Bagaimana cara mencapainya?

+---------+--------+------+
| Subject |  Marks | Name |
+---------+--------+------+
| English |     80 | Hari |
| Maths   |     81 | Hari |
+---------+--------+------+

person Harish Puli    schedule 06.04.2018    source sumber


Jawaban (1)


Anda dapat mencoba ini.

Menggunakan dua kueri, kueri pertama subjectCode kali English, kueri kedua subjectCode kali English. lalu gunakan UNION ALL untuk menggabungkannya.

SELECT sub.Col2 as 'Subject',stu.Col4 as 'Marks',stu.Col2 as 'Name'
FROM Students stu
inner join subjects sub on sub.Col1 = stu.Col3
WHERE stu.Col2 = 'Hari'
UNION ALL 
SELECT sub.Col2 as 'Subject',stu.Col6 as 'Marks',stu.Col2 as 'Name'
FROM Students stu
inner join subjects sub on sub.Col1 = stu.Col5
WHERE stu.Col2 = 'Hari'

http://sqlfiddle.com/#!9/513fe5/17

person D-Shih    schedule 06.04.2018