我有这两个表,我试图多次加入它们但失败了。以下是表格。
表ccaSubjects:
+------------+----------+
| ccaSubject | ccaPrice |
+------------+----------+
| Chess | 100 |
| Badminton | 300 |
| Dancing | 200 |
| Singing | 200 |
| Football | 250 |
| Fitness | 600 |
| Robotics | 1000 |
+------------+----------+
表rispEnrollment
+--------------------+-----------+-----------+----------+
| studentIdentifier | firstCCA | secondCCA | thirdCCA |
+--------------------+-----------+-----------+----------+
| elly@example.com | Robotics | Singing | Dancing |
| mike@example.com | Chess | Singing | Robotics |
| tom@example.com | Badminton | Dancing | Chess |
| peter@example.com | Football | Fitness | Robotics |
| andrew@example.com | Robotics | Singing | Chess |
+--------------------+-----------+-----------+----------+
我希望我的输出像:
+--------------------+-----------+-----------+----------+-----------+-----------+-----------+
| studentIdentifier | firstCCA | secondCCA | thirdCCA | CCA1price | CCA2price | CCA3price |
+--------------------+-----------+-----------+----------+-----------+-----------+-----------+
| elly@example.com | Robotics | Singing | Dancing | 1000 | 200 | 200 |
| mike@example.com | Chess | Singing | Robotics | 100 | 200 | 1000 |
| tom@example.com | Badminton | Dancing | Chess | 300 | 200 | 100 |
| peter@example.com | Football | Fitness | Robotics | 250 | 600 | 1000 |
| andrew@example.com | Robotics | Singing | Chess | 1000 | 200 | 100 |
+--------------------+-----------+-----------+----------+-----------+-----------+-----------+
从我的代码中,我只能使用内部联接一次并获得CCA1price
,我再也无法获得cca2price
和cca3price
,因为错误一直在说{{ 1}}。
我的数据库在phpmyadmin。
任何人都可以帮我怎么做?
答案 0 :(得分:0)
您可以根据需要多次将const
表加入let
表。在这种情况下,您可以加入三次以为三个主题列中的每一列引入价格列。
rispEnrollment
请注意,我在这里使用左连接,以防ccaSubjects
表的主题与SELECT
t1.studentIdentifier,
t1.firstCCA,
t1.secondCCA,
t1.thirdCCA,
t2.ccaPrice AS CCA1price,
t3.ccaPrice AS CCA2price,
t4.ccaPrice AS CCA3price
FROM rispEnrollment t1
LEFT JOIN ccaSubjects t2
ON t1.firstCCA = t2.ccaSubject
LEFT JOIN ccaSubjects t3
ON t1.secondCCA = t3.ccaSubject
LEFT JOIN ccaSubjects t4
ON t1.thirdCCA = t4.ccaSubject;
表中的任何内容不匹配。