MYSQL объединять таблицы несколько раз - PullRequest
6 голосов
/ 10 июня 2011

У меня есть таблица со строками событий, и у каждого есть (среди множества других полей) addedbyuser, editedbyuser, deletedbyuser Есть INT, и мы возвращаемся к таблице usersдля конкретного пользователя.Я могу присоединиться к одному из полей (скажем, addedbyuser) без проблем, как мне присоединиться к остальным и ссылаться на них в php?

таблица событий:

eventid addedbyuser editedbyuser deletedbyuser
1       1           2            3

пользователитаблица:

id username
1  name1
2  name2
3  name3

Итак, я хочу показать имена тех, кто добавил, отредактировал и удалил статью, могу ли я сделать это одним SQL-запросом?

1 Ответ

16 голосов
/ 10 июня 2011

Примерно так:

select 
    evn.eventid, 
    us1.username as addedbyuser, 
    us2.username as editedbyuser, 
    us3.username as deletedbyuser, 
from events evn
    join users as us1 on
        evn.addedbyuser = us1.id
    join users as us2 on
        evn.editedbyuser = us2.id
    join users as us3 on
        evn.deletedbyuser = us3.id
...