【发布时间】:2019-11-16 11:14:23
【问题描述】:
我需要水平连接表格的帮助,我的表格是
+---------+---------+
| Candidates Table |
+---------+---------+
| can_id | Name |
+---------+---------+
| 1 | Liza |
| 2 | Sarah |
| 3 | Jane |
| | |
+---------+---------+
+---------+---------+
| Judges Table |
+---------+---------+
| id | Name |
+---------+---------+
| 1 | judge1 |
| 2 | judge2 |
| 3 | judge3 |
+-------------------+
+---------+---------------+--------+-------+
| Score Table |
+---------+-------+------------------------|
| sco_id | can_id| jud_id |crit_id |score|
+---------+--------+-----------------------+
| 1 | 1 | 2 | 1 | 87 |
| 2 | 1 | 3 | 1 | 89 |
| 3 | 1 | 1 | 1 | 80 |
+------------------------------------------+
我需要类似这样的输出..
+---------+---------------+-------------+
| Score board |
+---------+---------+-------------------|
| Name | judge1 | judge2 | judge3 |
+---------+---------+-------------------|
| Liza | 80 | 87 | 89 |
|some data|some data|some data|some data|
|some data|some data|some data|some data|
+---------------------------------------+
注意:crit_id 是标准表中的标准 id。
通常我会使用一些连接和子查询,但我的问题是我需要动态输出,如果我添加一个新的判断它会自动生成一个新列。我需要至少 1 个包含所有评委分数的候选人数据,然后只需在 php 上使用参数循环它即可获取其他候选人数据,例如
php loop start
<td>name</td>
<td>judge1 score</td>
<td>judge2 score</td>
php end loop
或者如果我可以让整个候选人表与评委得分更好,我就不会让每个候选人循环他们
我曾尝试研究类似的问题,例如
Concatenate more than two tables horizontally in SQL Server
我曾尝试自己编写代码,但无法加入评委。
SELECT s.sco_id,c.Name,c.Municipalities
FROM `tbl_scoring` s
LEFT JOIN tbl_candidates c ON c.`can_id` = s.`can_id`
WHERE s.can_id = 11
AND crit_id = 1
ORDER BY s.jud_id asc
我需要一个查询,该查询将根据法官的数量动态生成,或者获取具有法官分数的候选数据,然后在 php 上循环,或者如果我在不循环的情况下获取所有数据,则更好
【问题讨论】:
-
您是否希望所有候选人都出现,即使他们没有达到标准?您是否希望所有评委都出庭,即使他们没有评分标准?
-
是的,我确实想查看所有候选人