Как выбрать из БД нужные поля в зависимости от результата LEFT JOIN?
Условный пример запроса:
SELECT IFNULL(t1.first_name, t2.username) as first_name,
IFNULL(t1.last_name, t2.domain) as last_name
FROM user u
LEFT JOIN table1 t1 ON t1.user_id = u.id AND user.type = 1
LEFT JOIN table2 t2 ON t2.user_id = u.id AND user.type = 2
Как будет правильно составить подобный запрос (без IFNULL), учитывая, что может быть table3 и т.д.?
Boris Korobkov, например, пользователь может зарегистрироваться на сайте через разные соц. сети:
ВКонтакте, Facebook, Twitter. Это и есть таблицы table1, table2, tableN в примере.
А мне нужно выводить таблицу со списком недавно зарегистрированных пользователей.
Захожу в админку, на сервер запрос за списком пользователей, с сервера приходит простой ответ формата:
SimBioT19, имеет смысл сделать 2 таблицы:
user - все юзеры: id, email, login, md5-password, salt, ....
user_oauth - доп информация о юзерах, авторизованных через соцсети: user_id, provider, external_id, profile, ...