Соединение двух столбцов с одной таблицей MySQL - PullRequest
1 голос
/ 02 февраля 2011

Я создаю список задач php и у меня есть таблица «admin_todo» в БД MySQL, и у каждого элемента todo есть столбцы «create_by» и «complete_by», которые содержат идентификатор пользователя в отдельной таблице «admin_users»,

Мне нужен запрос, который позволит мне связать столбцы «create_by» и «complete_by» со столбцом «username» в таблице «admin_users», чтобы я мог отобразить имя пользователя, который имеетсоздал задачу и кто завершил задачу.Кажется, это было бы очень легко сделать, но я не могу найти запрос, чтобы сделать это правильно.

Я попытался использовать объединение:

SELECT admin_todo.*, admin_users.username AS creator 
FROM admin_todo 
LEFT JOIN admin_users ON admin_todo.created_by = admin_users.id 

UNION ALL

SELECT admin_todo.*, admin_users.username AS completer 
FROM admin_todo 
LEFT JOIN admin_users ON admin_todo.completed_by = admin_users.id

Но, увы, он возвращает всеЗаписи todo дважды, первый раз с именами создателей todo в столбце creator.Второй раз с именами пользователей завершающих задачи, но ТАКЖЕ под столбцом «создатель».

1 Ответ

8 голосов
/ 02 февраля 2011

Попробуйте это:

SELECT admin_todo.*, au.username AS creator, au2.username AS completer
FROM admin_todo 
LEFT JOIN admin_users AS au
    ON admin_todo.created_by = au.id
LEFT JOIN admin_users AS au2
    ON admin_todo.completed_by = au2.id
...