Mysql Join 2 Table并合并2列,但删除Duplicate

时间:2015-03-09 10:32:51

标签: php mysql

我有2个表,我想要customerid,customername,comment和customercontactno。

我使用以下查询加入2表。

SELECT comment.id, comment.Kommentar, comment.Kunde,
CONCAT_WS('', customer.telefonPrivat, customer.TelefonMobil) AS Contact_Phone 
FROM tbl_test_comment comment 
LEFT JOIN tbl_test_customer customer 
ON customer.id = comment.Kunde;

我的第一个表是 tbl_test_comment 以下数据

enter image description here

tbl_test_customer

enter image description here

以上查询结果

enter image description here

问题

当我运行上面的查询时,如果两个合并列中的一个为空,则其工作正常。但如果数据在两行中,它会合并数据。如果两行都有值,我想避免使用。

预期输出

enter image description here

1 个答案:

答案 0 :(得分:1)

concat_ws代表"与分隔符"连接,即将字符串与分隔符一起添加。

相反,使用coalesce函数,它返回第一个非null参数:

coalesce(customer.telefonPrivat, customer.TelefonMobil)

如果空电话号码可以是空字符串''以及null,则可以使用功能更强大的case语句:

case 
when length(customer.telefonPrivat) > 0 then customer.telefonPrivat
else customer.TelefonMobil
end