powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Запрос на выборку не существующих данных в 3х таблицах
4 сообщений из 4, страница 1 из 1
Запрос на выборку не существующих данных в 3х таблицах
    #39179320
Fitter2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте,
Подскажите как правильно получить список ID полльзователей которых нет в 3х таблицах

Есть таблицы users, userips, incomes, links - все содержат поле user_id ( в таблице users просто id)

По одной как-то так:

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
SELECT u.id FROM users u
WHERE NOT EXISTS (SELECT 1 FROM mlinks l 
WHERE l.user_id = u.id AND
l.created >  (NOW() - interval 200 day)
) 

SELECT u.id FROM users u
WHERE NOT EXISTS (SELECT 1 FROM xx_income_log inc 
WHERE inc.icusr = u.id AND
inc.ictime >  (NOW() - interval 200 day)

) 


SELECT u.id FROM users u
WHERE NOT EXISTS (SELECT 1 FROM xx_userips ip 
WHERE ip.user_id = u.id AND
ip.time >  (NOW() - interval 200 day)

) 



Сразу не получается соединить , если я правильно понимаю через таблицу пользователей и INNER JOIN к каждому из 3х запросов.

Спасибо.
...
Рейтинг: 0 / 0
Запрос на выборку не существующих данных в 3х таблицах
    #39179362
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Примерно так:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
SELECT u.id
FROM users u
LEFT JOIN mlinks l ON l.user_id = u.id AND l.created > (NOW() - interval 200 day)) 
LEFT JOIN xx_income_log inc ON inc.icusr = u.id AND inc.ictime > (NOW() - interval 200 day)) 
LEFT JOIN xx_userips ip ON ip.user_id = u.id AND ip.time > (NOW() - interval 200 day)) 
WHERE
l.user_id IS NULL
inc.icusr IS NULL
ip.user_id IS NULL
...
Рейтинг: 0 / 0
Запрос на выборку не существующих данных в 3х таблицах
    #39179421
Fitter2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
miksoft,

Если ваш запрос верен, то на моей версии 5.6.22

Это выдает ошибку:

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
[SQL]SELECT u.id
FROM users u
LEFT JOIN mlinks l 
ON l.user_id = u.id 
AND l.created > (NOW() - interval 200 day)) 
LEFT JOIN xx_income_log inc ON inc.icusr = u.id AND inc.ictime > (NOW() - interval 200 day)) 
LEFT JOIN xx_userips ip ON ip.user_id = u.id AND ip.time > (NOW() - interval 200 day)) 
WHERE
l.user_id IS NULL
inc.icusr IS NULL
ip.user_id IS NULL

[Err] 1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ') 
LEFT JOIN xx_income_log inc ON inc.icusr = u.id AND inc.ictime > (NOW() - in' at line 5



Спасибо.
...
Рейтинг: 0 / 0
Запрос на выборку не существующих данных в 3х таблицах
    #39179427
Fitter2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо всё работает,
нужно было лишние скобки убрать.

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
SELECT u.id
FROM users u
LEFT JOIN mlinks l ON l.user_id = u.id AND l.created > (NOW() - interval 200 day) 
LEFT JOIN xx_income_log inc ON inc.icusr = u.id AND inc.ictime > (NOW() - interval 200 day) 
LEFT JOIN xx_userips ip ON ip.user_id = u.id AND ip.time > (NOW() - interval 200 day) 
WHERE
 l.user_id IS NULL AND
 inc.icusr IS NULL AND
 ip.user_id IS NULL





Спасибо.
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Запрос на выборку не существующих данных в 3х таблицах
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]