2013-10-14 38 views
0

我有2個表,我想加入...MySQL的加入兩個表從同一個表中獲取2個不同的值

表 「用戶」:

列:

的uid =>用戶索引

名=>用戶名


表 「消息」:

色譜柱:

fromid =>發送方用戶索引

風溼=>接收器的用戶索引

消息=>文本消息


我想是這樣的輸出: | from_username | to_username |消息|

我可以| from_username |消息| 與此查詢:

SELECT messages.message, users.name FROM messages,users WHERE messages.fromid = users.uid; 

回答

1

你需要完成加入兩次:

Select f.name, t.name, message from messages 
Left join users as f on messages.fromID = f.uid 
Left join users as t On messages.toid = t.uid 

有關完整的連接語法(和一些解釋)MySQL的文檔頁面不壞http://dev.mysql.com/doc/refman/5.0/en/join.html

+0

#1064 - 您的SQL語法錯誤;檢查與您的MySQL服務器版本相對應的手冊,以便在第2行'Left join users as f where messages.fromID = f.uid,Left join'處使用正確的語法 –

+0

您正確我編輯了答案,因此語法是「連接表名」而不是在哪裏。 – ModulusJoe

+0

是的,它的工作原理:D謝謝你! –

0

嘗試

SELECT sender.name, receiver.name, message 
FROM messages 
INNER JOIN users sender 
ON messages.fromid = sender.uid 
INNER JOIN users receiver 
ON messages.toid = receiver.uid 
+0

不能正常工作,但謝謝!我已經有了我的答案! –

相關問題