2015-06-16 41 views
2

我知道我在这里做点傻事mysql左连接4条记录而不是1

这个左连接不应该只给出一条记录吗?

我的SQL小提琴:

http://sqlfiddle.com/#!9/251f7/1

而且,如果一种灵魂可以帮我把产品名称中使用逗号

required output 
id1 id2 productName 
a1 x1 copier,headphone,cable,monitor 
+0

这是件好事,你已经发布了小提琴,但你也应该提供数据和期望的输出在您的文章,您当前的尝试一起。 – potashin

+0

我有我的问题中的小提琴和需要输出的数据。谢谢 –

回答

3

left join在你的榜样分隔的一个领域工作完全正常,它应该的方式,在一个带分隔符的字符串中连接productName,您应该执行group by并使用group_concat

select ForgeRock.id1 
    , ForgeRock.id2 
    , group_concat(ForgeRock.productName) 
from TClock 
left join ForgeRock on TClock.id1 = ForgeRock.id1 and 
         TClock.id2 = ForgeRock.id2 
where colour = 'red' 
group by ForgeRock.id1 
     , ForgeRock.id2 

SQLFiddle

+0

谢谢,这很好。我一直认为左连接在没有“分组”的情况下工作。你是否需要“group by”,因为有AND运算符? –