2014-10-10 69 views
1

我遇到了問題,爲我的callmanagement加入了4個mysql表。MySQL加入4個表

我的表是:

calls: 
callId | contactId | companyId | numberId | timestamp | callNote | duration | state 

contacts: 
contactId | firstName | lastName | companyId | email | contactNote 

numbers: 
numberId | contactId | number 

companies: 
companyId | companyName 

我需要一個查詢這使我:

callId | timestamp | duration | number | callNote | state | contactId | firstName | lastName | company | email | contactNote 

我認爲這是可能的,但我不知道怎麼辦。

+2

確定。什麼阻止你?你有沒有學過'INNER JOIN's?你是否確定了你的主鍵和外鍵? – 2014-10-10 19:03:41

回答

0

試試這個

select o.callId , o.timestamp , o.duration ,o.callNote , 
o.state,o.contactId, 
    j.firstName , j.lastName ,j.company Id as company, 
    j.email, j.contactNote, 

r.number 

from calls o 
left outer join contacts j 
    on o.contactId =j.contactId 
left outer join numbers r 
    on j.contactId=r.contactId; 
+1

這就是正確的查詢!多謝。 – bambamboole 2014-10-10 19:50:34

1

您應該使用INNER JOIN來加入表格。例如:

SELECT 
    c.callId, 
    c.timestamp, 
    c.duration, 
    n.number, 
    c.callNote, 
    c.state, 
    c.contactId, 
    c1.firstName, 
    c1.lastName, 
    c2.CompanyName as company, 
    c1.email, 
    c1.contactNote 
FROM calls c 
INNER JOIN contacts c1 ON c1.contacId = c.contactId 
INNER JOIN numbers n ON n.contactId = c1.contactid 
INNER JOIN companies c2 ON c2.companyid = c.companyid 
-1

試試這個:

SELECT 
    calls.CallId 
    ,calls.[Timestamp] 
    ,calls.[duration] 
    ,numbers.number 
    ,calls.callNote 
    ,calls.[state] 
    ,calls.contactId 
    ,contacts.firstName 
    ,contacts.lastName 
    ,companies.companyName AS company 
    ,contacts.email 
    ,contacts.contactNote 
FROM 
      calls 
INNER JOIN contacts  ON calls.contactId = contacts.Id 
INNER JOIN numbers  ON calls.contactId = numbers.contactId 
          AND calls.numberId = numbers.numberId     
INNER JOIN companies ON contacts.companyId = companies.companyId 

想必是可能的一個接觸到有多個號碼,所以除非你加入到使用ContactID和numberId數字,你可能會發現你因爲查詢不知道如何加入數字表格,所以請在結果中進行重複。

+0

爲我自己的理解,請你能解釋解決方案的投票 - 我不知道我的錯誤是什麼。 – 2014-10-10 19:49:01