MYSQL与子查询连接

时间:2015-07-28 10:52:47

标签: php mysql sql phpmyadmin

我需要连接我表的地址字段(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 ,法国

但不是 27 Avenue Pasteur, 14390 Cabourg ,法国(14390 Cabourg之间没有任何指挥官)

2 个答案:

答案 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;