Left Join之后的MYSQL concat没有显示值

时间:2015-12-11 23:22:41

标签: mysql left-join concat

我有一个清单A:

Item | Company 
1    | aa
2    | bb

列表B:

Item | Info
2    |  blablabla

我有以下查询:

SELECT a.item, concat(A.company, ' - ', B.info) 
From A LEFT JOIN B on A.item = B.item

这就是我得到的:

1    None
2    bb - blalal

我想要的是:

1    aa - 
2    bb - blalal

2 个答案:

答案 0 :(得分:1)

如果任何参数为concat(),则

NULL会返回NULL一个简单的解决方案是coalesce()

SELECT a.item, concat(A.company, ' - ', coalesce(B.info, '')) 
From A LEFT JOIN
     B
     on A.item = B.item;

您似乎想要分隔符。如果你没有,另一种选择是:

SELECT a.item, concat_ws(' - ', A.company, B.info) 

答案 1 :(得分:0)

利用IFNULL

SELECT A.Item, CONCAT(A.Company, ' - ', IFNULL(B.Info,'')) 
FROM A  
LEFT JOIN B ON A.Item=B.Item;