我有 2 个表 A 和 B
Table A
ID NAME
1 John
2 Jack
3 Mark
Table B
ID phone UserID
s1 4586 1
s2 6996 1
s3 9654 2
它们是一对多关系(约翰在表 2 上有 2 个电话)
我的sql查询
$sql = 'SELECT *
FROM
A
Join
B
ON
B.USER_ID = A.ID
WHERE
A.ID=:ID';
我的PHP
foreach($vars['GROUPS'] as $row) {
<tr><th>Name</th><td><?=$row['Name']?></td></tr>
<tr><th>phone</th><td><?=$row['phone']?></td></tr>
}
我想显示该用户 John name 的电话号码,然后显示表 2 中他的所有详细信息。因为它现在为我循环
最佳答案
您有 2 个选择:
使用group_concat() sql 中的函数将用户拥有的所有电话号码连接成一个字符串,并在 php 中使用与您现在使用的几乎相同的循环。
选择 a.id, a.name, group_concat(b.phone) 作为电话 来自 a.id=b.user_id 上的内连接 b 按a.id、a.name分组
保持当前的 sql 查询不变,但更改显示表的 php 循环。在这种情况下,在循环查询返回的所有记录后,仅打印出带有所有相应电话号码的姓名。只需连接循环中的所有电话号码即可。
关于php从一张或多张表中获取数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40257684/