такие:
users
id - value
1 - Vasya
и вторая
users_profiles
id - user_id - profile_id
1 - 1 - 5
1 - 1 - 8
Мне нужно запросом заджоинить вторую табличку к первой, но только одну строчку. Т.е. в запросе мне нужно получить список юзеров у которых profile_id IN (5,8), но что бы строчки не дублировались с разными профилями. Надеюсь не слишком коряво объяснил. :)
Сейчас я делаю так: SELECT DISTINCT up.* from users_profiles up WHERE profile_id IN (5,8) и уже эту таблицу джоином цепляю к запросу. Вроде оно работает, но я что-то не уверен, что делаю это правильно. Может есть какой-то другой правильный способ?
Есть, join
Объяснил коряво, потому что тут у пользователя два профиля, и ты хочешь получить оба.
В таких условиях одну запись пользователя не получить никак
select * from users u join user_profiles p on p.user_id = u.user_id where p.profile_id in (5,8)
Обсуждают сегодня