连接表而不显示与另一个相关的重复值

时间:2012-03-30 14:26:35

标签: mysql join

我有两张桌子; table1,table2,但是table1只有1条记录,table2有3条记录我试图加入表,这样它只显示表1中的一条记录,但是所有三条记录都来自table2而没有复制table1中的值

SELECT * from table1 a
inner  join table2 b on
a.table1_id=b.table2_id

我已经尝试了这个,但它仍然返回table1中的行的副本,正如我所说,我试着从table1获取1行,从tabl2连接三行而不显示table1的重复项

2 个答案:

答案 0 :(得分:1)

从一个表中拉出一行,从JOIN的另一个表中拉出三行是没有意义的。甚至看起来这样的结果会是什么样的?您最接近的是GROUP table1.idGROUP_CONCAT() table2值。

E.g:

SELECT
    t1.id,
    GROUP_CONCAT(t2.id SEPARATOR ', '),
    GROUP_CONCAT(t2.name SEPARATOR ', ')
FROM
    t1
INNER JOIN t2 ON t1.id = t2.t1_id
GROUP BY
    t1.id

答案 1 :(得分:0)

当您加入两个表时,您获得的记录数量将是基于联接的记录数和标准。 IE,如果你的表有3条记录加入到一个记录的表中,你将得到3条记录。如果只需要一条记录,请不要加入值,将没有连接的SUBSELECT的3条记录的值CONCAT到第一个表。