2014-11-25 28 views
0

我真的真的是一個新手,所以我希望我能解釋自己與我有什麼麻煩。數據連接MySQL中的多個表格

我有幾個表,我需要從1個表中提取數據。到目前爲止,我可以從2個表中提取,但不能從3個或更多中提取。

這是我從2個表中提取有:

select C.id , C.business, AP.firstname, AP.lastname from claims C JOIN affected_people AP ON C.ID = AP.claimid

我有另一個名爲表名「消息」我需要提取的意見和dateread「。

此表通過'claimid'與其他人相關。

我如何從所有三個表中提取1個表?

請幫忙。

D_Klutz

我沒有考慮我與得到的結果有一個問題。事實證明,每個claimid都會發送多條消息,但我們正在尋找的是最後一條消息。如何編碼才能選擇最後一條消息?所有發送的消息都有一個時間戳記。感謝您的幫助

+0

加上'上M.claimid = C.ID' – radar 2014-11-25 03:29:57

+0

查覈在[SQL撥弄]我簡單的工作示例(http://sqlfiddle.com/加入消息m #!2/d83ea/3) – 2014-11-25 03:51:43

回答

0

添加另一個加盟的消息應該工作:

select 
    C.id , 
    C.business, 
    AP.firstname, 
    AP.lastname, 
    M.comments, 
    M.dateread 
from 
    claims C 
JOIN 
    affected_people AP 
     ON C.ID = AP.claimid 
join 
    Messages M 
     on M.claimid = C.ID 
+0

非常感謝您的建議,它的成效非常好。然而,我並沒有考慮到我得到的結果的問題。事實證明,每個claimid都會發送多條消息,但我們正在尋找的是最後一條消息。如何編碼才能選擇最後一條消息?所有發送的消息都有一個時間戳記。謝謝你的幫助。 – 2014-11-25 20:01:39

0

您的查詢應該是這樣的。

select 
    C.id , 
    C.business, 
    AP.firstname, 
    AP.lastname, 
    m.comments, 
    m. dateread 
from 
    claims C 
    JOIN 
    affected_people AP ON C.ID = AP.claimid 
    JOIN 
    Messages M on C.ID=M.claimid 
0

試試吧

select C.ID, C.business, AP.firstname, AP.lastname, M.Message from claims AS C INNER JOIN affected_people as AP ON C.Id = AP.claimid inner join Messages as M on C.ID = M.claimid 
+0

謝謝,這個建議只有在我將「M.Message」編輯爲「M.comments」後才起作用。謝謝... – 2014-11-25 16:55:04

+0

好的!援助是很好的。 – 2014-11-26 02:44:16