@YellowNicon

SQL-запрос: как выбрать тех, у кого авторизация ТОЛЬКО из приложения?

Есть таблица enter в которую пишутся все авторизации пользователей. Один из столбцов в ней enter_source, который записывается в 4 варианта (landing, web. ios, android).

Как выбрать только тех пользователей, у кого авторизация была с приложения, но с веба не было. При использовании NOT IN () AND IN () и JOIN исключить тех, у кого была все же авторизация и с веба не получается.
  • Вопрос задан
  • 90 просмотров
Решения вопроса 1
@Akina
Сетевой и системный админ, SQL-программист.
SELECT DISTINCT user_id
FROM enter t1
WHERE NOT EXISTS ( SELECT NULL
                   FROM enter t2
                   WHERE enter_source = 'web' 
                     AND t1.user_id = t2.user_id )
  AND EXISTS ( SELECT NULL
               FROM enter t3
               WHERE enter_source IN ('ios', 'android')
                 AND t1.user_id = t3.user_id );
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
SELECT *
  FROM `users`
  WHERE `id` IN (
    SELECT `user_id`
      FROM `enter`
      WHERE `enter_source` = 'ios' OR `enter_source` = 'android'
  ) AND `id` NOT IN (
    SELECT `user_id`
      FROM `enter`
      WHERE `enter_source` = 'landing' OR `enter_source` = 'web'
  )
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы