MYSQL объединяет таблицы несколько раз

#mysql #sql #join #foreign-keys #referential-integrity

#mysql #sql #Присоединиться #внешние ключи #ссылочная целостность

Вопрос:

У меня есть таблица со строками событий, и в каждом из них есть (среди множества других полей) 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:

Что-то вроде этого:

 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