我有两张 table 1. 员工 2.联系方式
employees
id name
1 Smith
2 Ken
3 Tim
contacts
id phone emp_id
1 431-1234 1
2 431-5678 1
3 431-3421 2
在员工表中 id 是主键,在联系人表中 emp_id 是员工表的外键
需要的输出是,
Name Contacts
Smith 431-1234, 431-5678
当我尝试时,
SELECT * FROM employees e, contacts c WHERE e.id=emp_id
我得到重复的名字。
$q = mysql_query("SELECT * FROM employees e, contacts c WHERE e.id=emp_id");
while($r = mysql_fetch_assoc($q)) {
echo $r['name'] .' '. $r['phone'];
}
最佳答案
将group by
与group_concat
结合使用:
select e.name, group_concat(c.phone separator ', ') phone
from employees e inner join contacts c on e.id = c.emp_id
group by e.id
关于php - 显示一对多关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23505251/