读取一个表并从另一个表中获取与第一个表行相关的行

时间:2012-07-01 10:51:25

标签: php mysql

这是我的难题,我有一个带有标识号列的客户表和一个带有“AssociatedTo”列的系泊表。 “AssociatedTo”列有时没有数字,因为它尚未分配,但其他人将有一个数字,这将是客户的标识号。

我之前有一个系统可以做到这一点,但是效果不好......很糟糕......看起来很恐怖。我需要一些东西能够输出一个包含客户列表的表,并作为其中一行的列,一个分配给行客户的系泊列表。如果你可以指出我的方式或举例说明这个代码,那就太好了!

1 个答案:

答案 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获取值数组。