在表格中多次加入相同的字段

时间:2018-05-31 02:03:13

标签: database mysqli

我有这两个表,我试图多次加入它们但失败了。以下是表格。

表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,我再也无法获得cca2pricecca3price,因为错误一直在说{{ 1}}。

我的数据库在phpmyadmin。

任何人都可以帮我怎么做?

1 个答案:

答案 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; 表中的任何内容不匹配。