mysql 左联接产生 4 条记录而不是 1 条

mysql left join results in 4 records instead of 1

我知道我在这里做了一些傻事

这个left join是不是应该只给一条记录?

我的sqlfiddle:

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

另外,如果有好心人可以帮我把productName放在一个字段中,用逗号分隔

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

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