2017-07-09 33 views
0

我在MySql數據庫中有兩個表叫做con01_objectscon01_object_contacts。它們具有如圖所示的外鍵(con01_objects.id = con01_object_contacts.obj_id)。Mysql一對多連接,行到列

image

正如所看到的,con01_object_contacts表包含CONTACT_TYPE列這將有幾個接觸類型一個對象及其相應的觸點(接觸類型:0-數,1幅,2- tolfree ,3-facebook,4-twitter,5-instagram,6-youtube,7-mail)。

我需要的是加入這兩個表,這樣就不會有重複的對象。我需要一個連接結果,將每個聯繫人類型顯示爲一列。如果對於相應聯繫人類型中的對象沒有聯繫人,則該條目應該爲NULL。

++++++++++++++++++++++++++++++++++++++++++++++ +++++++++++++++++

objects --- contype_0(num)---- contype1(WEB)----- contype(tolfree) +++ ++++++++++++++++++++++++++++++++++++++++++++++++++ ++++++++++

OBJ1 ---- ---- 96785445578700 ----- SOMETHING.c0M 45469889

OBJ 2 ---- 55457875748787 ----- - NULL --------------------- 42499898

我試過這個查詢,但它返回重複的行,因爲一個對象有不同的聯繫類型。

SELECT * FROM con01_objects LEFT JOIN con01_object_contacts ON con01_objects.id = con01_object_contacts.obj_id

由於預先。

+0

'請點擊see' ......除了不包括必要的信息,你的鏈接是勉強點擊。請在您的問題上投入更多時間,並向我們展示您已經嘗試過的任何查詢。 –

+0

@TimBiegeleisen對不起,請參閱更改 –

回答

0

我認爲你正在尋找這樣的:

Select distinct(a.jid), 
(SELECT contact FROM con01_object_contacts where contact_type = '0') as contype_0, 
(SELECT contact FROM con01_object_contacts where contact_type = '1') as contype_1, 
(SELECT contact FROM con01_object_contacts where contact_type = '2') as contype_2 
from con01_objects a 
left join con01_object_contacts as b 
on a.id = b.obj_id; 
+0

非常感謝您的幫助,我改變了一下你的查詢,我得到了我想要的。 –