您好,我有两个具有以下结构的表
学生
+------+------+------+-------+------+------+
| Col1 | Col2 | Col3 | Col4 | Col5 | Col6 |
+------+------+------+-------+------+------+
| 01 | Hari | 20 | 80 | 21 | 81 |
| 02 | Nari | 20 | 67 | 21 | 76 |
| 02 | Lari | 25 | 87 | 26 | 96 |
+------+------+------+-------+------+------+
这里 COl1= ID, Col2= Name,Col3= SubjectCode, COl4= Marks in Col3, Col5= subjectCpde, Col6= Marks for Col5
还有另一个名为 subjects 的表
+------+-----------+
| Col1 | Col2 |
+------+-----------+
| 20 | English |
| 21 | Maths |
| 25 | Chemistry |
| 26 | Physics |
+------+-----------+
此处 Col1= 主题代码,COl2= 主题名称 在学生表中引用。
现在我的查询应该返回如下结果。它是如何实现的?
+---------+--------+------+
| Subject | Marks | Name |
+---------+--------+------+
| English | 80 | Hari |
| Maths | 81 | Hari |
+---------+--------+------+
最佳答案
你可以试试这个。
使用两个查询,首先用English
查询subjectCode
,第二个用English
查询subjectCode
。然后使用 UNION ALL
将它们组合起来。
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'
关于mysql - 如何从单行表中获取多行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49684594/