是否有一个连接返回一个表已经合并了一行?

时间:2013-05-13 23:41:48

标签: mysql join

我有一个名为phone的表,其中有一列名为names,另一列名为number。我有一个名为address的第二个表,其中有一列名为family,另一列名为addressfamilynames具有相同的值,但family有一些重复。我想将这些内容加入到一个表格中,其中familynames为1列,然后phoneaddress为另一列。但是,由于尺寸不匹配(地址多于电话号码),我不确定这是否可行。

谢谢!

2 个答案:

答案 0 :(得分:0)

这是你期待的吗?

Table 1
Name number
Bob  1234
Tom  3456

Table 2
family address
Bob    MD
Bob    NJ
Bob    NY
Tom    NC

Result
Name  Number  Address
Bob   1234    MD/NJ/NY

答案 1 :(得分:0)

假设“要使地址栏保持不变,并且每个匹配的家庭都要重复这些数字”,如同其中一条评论所述:

 select 
    A.family, A.address, P.number 
from 
    address A
    left join phone P on A.family = P.Name
order by 
    A.family, A.address, P.number

Fiddle

FTR,如果是我,我可能会对此更感兴趣:

select 
    A.family, 
    group_concat(distinct A.address separator '\n') Address, 
    group_concat(distinct P.number separator ',') Phone
from 
    address A
    left join phone P on A.family = P.Name
group by family
order by 
    A.family, A.address desc, P.number