Reputation: 562
I have 2 tables that I would like to join...
Table "users":
Columns:
uid => user index
name => user name
Table "messages":
Columns:
fromid => sender user index
toid => receiver user index
message => text message
I want an output like this: | from_username | to_username | message |
I can get | from_username | message | with this query:
SELECT messages.message, users.name FROM messages,users WHERE messages.fromid = users.uid;
Upvotes: 0
Views: 141
Reputation: 9322
Try
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
Upvotes: 0
Reputation: 1456
You need to complete the join twice:
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
For the complete join syntax (and some explanation) the MySQL doc page is not bad http://dev.mysql.com/doc/refman/5.0/en/join.html
Upvotes: 1