繁体   English   中英

PHP-将多个表行字段联接到单个表

[英]PHP - Multiple Table Row Fields JOINed to Single Table

首先,我不确定该标题的确切措辞。 所以我有两个表(英雄和记录)。 在用户表中,我将名字和姓氏分开。 在记录表中,我可以拥有1到2个用户。 如何在同一张表上进行联接? PS。 我想将此显示在桌子上。

MYSQL heros table:
id|firstname|lastname
1 |Peter    |Parker
2 |Mary     |Jane

MYSQL records table:
id|badguy      |hero1id|hero2id
1 |Green Goblin|1      |
2 |Doc Oc      |1      |2

我想在表格中显示上述信息(这将使用html,css等)。 我知道该怎么做,我只是不知道使用php加入的正确方法。

Displayed table:
Heros & Bad Guys
Green Goblin | Peter Parker
Doc Oc       | Peter Parker and Mary Jane

PHP代码://创建查询-记录

$query = "SELECT records.*, heros.firstname, heros.lastname FROM records
        INNER JOIN heros
        ON records.hero1id = heros.id";

//运行查询

$records = $db->select($query);

现在,我使用以下代码来显示其中一个名称,如何显示另一个名称而不引起干扰?

<td><?php echo $row['badguy']; ?></td> 
<td><?php echo $row['firstname']; ?> <?php echo $row['lastname']; ?></td>

像这样更新记录表结构##

MYSQL记录表:
id | badguy | hero1id |
1 |绿色妖精| 1 |
2 | Doc Oc | 1 |
3 | Doc Oc | 2 |

通过使用此结构,您可以添加无限数量的用户。请遵循此表结构。

您可以使用以下sql。 但是我还是建议结合其他人的建议将hero1id和hero2id结合起来。

SELECT records.badguy,GROUP_CONCAT(CONCAT(firstname,'',lastname)SEPARATOR'和')AS heroesname FROM records INNER JOIN heroes on records.hero1id = heros.id或records.hero2id = heros.id GROUP BY badguy

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM