2012-07-01 66 views
1

這是我的難題,我有一張客戶表,帶有一個標識號列和一個帶有「AssociatedTo」列的繫泊表。 「AssociatedTo」列有時沒有號碼,因爲它還沒有被分配,但其他號碼會有一個號碼作爲客戶的識別號碼。閱讀一張表,並從另一張表中獲取與第一張表格相關的行

我以前有一個系統來做到這一點,但它是無效的..慢......只是看得很糟糕。我需要能夠輸出具有客戶列表的表格以及其中一行的列,即分配給行客戶的繫泊列表。如果你能指點我或者給出這個代碼的例子,那會很棒!

+2

聽起來你正在尋找['left outer join'](http://en.wikipedia.org/wiki/Join_(SQL)),但是因爲你沒有發佈任何代碼,所以很難確定你在做什麼。 – Ben

+0

我知道加入是一個好主意,但是我不知道如何獲取繫泊號碼,如果有很多人被分配給客戶。是否有某種方式可以將客戶的繫泊裝置放入客戶陣列內的單獨陣列中? – PwnageAtPwn

回答

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來獲取值的數組。

相關問題