繁体   English   中英

显示一对多的关系

[英]Displaying one to many relationship

我有两张桌子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

在employees表中,id是主键,在contacts表中,emp_id是employees表的外键

需要的输出是,

 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 bygroup_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

你能使用这个查询:

select a.name,group_concat(b.phone separator ', ') as contacts
from employees a join contacts b
on a.id = b.emp_id

这是因为您只想显示2列,而您现在正在做的是显示“全部”

暂无
暂无

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

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