I\'ve got a user table and a complaint table.
The complaint table has the following structure:
[opened_by] [
I prefer sub-queries as I find them easier to understand...
SELECT (SELECT name
FROM user
WHERE user_id = opened_by) AS opener,
(SELECT name
FROM user
WHERE user_id = closed_by) AS closer,
complaint_text
FROM complaint;
Sub-queries are usually rewritten by the query optimiser, if you have any performance concerns.
SELECT user1.username AS opened_by_username, complaint.complaint_text, user2.username AS closed_by_username
FROM user AS user1, complaint, user as user2
WHERE user1.user_id = complaint.opened_by
AND user2.user_id = complaint.closed_by
Join it again using an alias (thats what the user as user2 stuff is about)
Use this query:
SELECT opener.username as opened_by, complaint.complaint_text, closer.username as closed_by
FROM complaint
LEFT JOIN user as opener ON opener.user_id=complaint.opened_by
LEFT JOIN user as closer ON closer.user_id=complaint.closed_by
SELECT
complaint.complaint_text,
A.username,
B.username
FROM
complaint
LEFT JOIN user A ON A.user_id=complaint.opened_by
LEFT JOIN user B ON B.user_id=complaint.closed_by