这是我的难题,我有一个带有标识号列的客户表和一个带有“AssociatedTo”列的系泊表。 “AssociatedTo”列有时没有数字,因为它尚未分配,但其他人将有一个数字,这将是客户的标识号。
我之前有一个系统可以做到这一点,但是效果不好......很糟糕......看起来很恐怖。我需要一些东西能够输出一个包含客户列表的表,并作为其中一行的列,一个分配给行客户的系泊列表。如果你可以指出我的方式或举例说明这个代码,那就太好了!
答案 0 :(得分:1)
如果我了解您在与客户表关联的系泊表中有 0或更多行。 这会为每个客户行返回1行,并在多个列中返回与客户关联的所有 m.col1 值,并以逗号分隔。
select c.*, GROUP_CONCAT(m.col1 SEPARATOR ',') as multiple
from customer c left join mooring m on c.ID = m.AssociatedTo
where 1
group by c.ID
ADD
请参阅:http://dev.mysql.com/doc/refman/5.0/en/group-by-functions.html#function_group-concat了解所有选项。
获得结果,您可以使用explode获取值数组。