Привет, помогите правильно сформировать запрос, что-то запутался.
Есть Поле - индентификатор в одной таблице, есть другая таблица, в которой могут присутствовать такие же индентификаторы(Юзеры)
Нужен запрос, который выведет пользователя, если он есть в первой таблице, либо во второй таблице+по второй таблице еще условие, например is_active.
Во второй таблице может быть несколько записей по этому пользователю.
Иван Мельников, Нет. Юзеры - это их уникальные номера. Они могут быть в 1 таблице, могут быть во второй, либо в обеих. Мне нужно только этот идентификатор выводить, если юзер есть либо в 1 либо во второй+условие из второй.
А можете еще подсказать
Есть таблица 1 столбец - id юзеров и эти две таблички.
Нужно вывести тех юзеров из первой таблицы, которые есть в двух других+условие по второй.
Вобщем, тоже самое, только данные взять из первой таблицы.
SELECT * FROM `t0` WHERE EXISTS
(SELECT `id` FROM `t1` WHERE `t1`.`id` = `t0`.`id` UNION
SELECT `id` FROM `t2` WHERE `t2`.`id` = `t0`.`id` AND `is_active` = 1)
Протестил, вроде нет дублей.
Только есть странные расхождения.
Если взять id из первой и сравнить с третьей таблицей+условие. Результат получается больше, чем от этого запроса. А по сути должно быть наоборот, ибо к результату прибавляется вторая таблица.