我需要连接我表的地址字段(zip,city,countryName,streetAddress)。这是我写的查询,
SELECT id,concat_ws(' ',address1,zip,city,(select countryName from country where countryCode = User.countryCode)) FROM User
它为我提供28 Avenue Pasteur 14390 Cabourg France
实际应该是27 Avenue Pasteur, 14390 Cabourg, France
(以逗号分隔)
我该怎样做到这一点?
更新
使用时SELECT id,concat_ws(',',address1,zip,city,(select countryName from country where countryCode = User.countryCode)) FROM User
但不是 27 Avenue Pasteur, 14390 Cabourg ,法国(14390 Cabourg之间没有任何指挥官)
答案 0 :(得分:1)
尝试这种方式(同样,最好使用join
):
select u.id,concat(u.address1,', ',u.zip,' ',u.city,', ',c.countryName) as Address
from User u join
country c on u.countryCode=c.countryCode
结果将是:
27 Avenue Pasteur, 14390 Cabourg, France
答案 1 :(得分:1)
您应该添加一个逗号作为字符串的分隔符。试试这个:
SELECT id,concat_ws(',',address1,zip,city,(select countryName from country where countryCode = User.countryCode)) FROM User;