1

これが私の難問です。識別番号列を持つ顧客テーブルと、「AssociatedTo」列を持つ係留テーブルがあります。「AssociatedTo」列には、まだ割り当てられていないため番号がない場合がありますが、顧客の識別番号となる番号がある場合もあります。

以前はこれを行うためのシステムがありましたが、効果がなく..遅く..そして見るのが恐ろしいものでした。顧客のリストを含むテーブルを出力できるようにするために、顧客の行に割り当てられた係留のリストを行の 1 つの列として出力できるようにする必要があります。途中で私を指摘したり、このコードの例を挙げたりできれば、それは素晴らしいことです!

4

1 に答える 1

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

追加

すべてのオプションについては、http: //dev.mysql.com/doc/refman/5.0/en/group-by-functions.html#function_group-concatを参照してください。

結果を取得するには、 explodeを使用して値の配列を取得できます。

于 2012-07-01T11:15:21.483 に答える