我有两张桌子 员工 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'];
}
答案 0 :(得分:3)
将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
答案 1 :(得分:-1)
您可以使用此查询:
select a.name,group_concat(b.phone separator ', ') as contacts
from employees a join contacts b
on a.id = b.emp_id
这是因为您只想显示2列,而您现在正在做的是显示“全部”