查询2个表

时间:2013-02-16 11:24:09

标签: mysql sql

好日子,我在查询2 mysql表时遇到问题。

表1

c_id     c_name
**-----------------**
 1      blah,blah
 2      hey

表2

m_id    c_id    m_name
-----------------------
 1       1     some_name
 2       1     some-name
 3       1     some/name
 4       1     some.name
 5       2     name.some
 6       2     name-some

我希望显示器如下:

c_id     c_name       m_name
-----------------------------
 1     blah,blah     some_name
                     some-name
                     some/name
                     some.name
 2     hey           name.some
                     name-some

4 个答案:

答案 0 :(得分:1)

Select a.c_id, a.c_name, 
group_concat(b.m_name SEPARATOR '<br/>') as m_name from table1 a 
left join table2 b on a.c_id = b.c_id
group by a.c_id;

Fiddle

使用m_name绑定到标签。它将带有换行符

答案 1 :(得分:1)

此查询将输出您想要的内容:

select case when first.m_id is null then ' ' else t1.c_id end c_id, 
       case when first.m_id is null then ' ' else t1.c_name end c_name, 
       m_name
from Table1 t1
inner join Table2 t2 on t1.c_id = t2.c_id
left outer join (
    select m_id,t1.c_id, t1.c_name, min(m_name)
    from Table1 t1
    inner join Table2 t2 on t1.c_id = t2.c_id
    group by t1.c_id, t1.c_name) first on t2.m_id = first.m_id  
order by t1.c_id, t2.m_id

请参阅SQLFIDDLE:http://www.sqlfiddle.com/#!2/4bab3/16/0

答案 2 :(得分:0)

Select a.c_id, a.c_name, b.m_name from  table1 a left join table2 b on a.c_id  = b.c_id;

答案 3 :(得分:0)

您可以使用join将两个表的结果放在一起:

select c_id, c_name, m_name from table1 as x left outer join table2 as y on x.c_id = y.c_id;