Mysql получить отсутствующие занчения
SELECT id, NickName, Tel
FROM clients
WHERE id IN (" + client_ids + ");
Получаю список клиентов которые есть в базе, но мне нужно так же получить и id тех которые отсутствуют в базе.
Переменная client_ids со списком клиентов приходит из другой базы.
Требуется получить таблицу типа:
| id | NickName | Tel |
|---|---|---|
| 1 | Highlander | 797886952 |
| 3 | null | null |
| 40 | Sadiely | 797886952 |
id=3 нет в базе
Придумал только по каждому запросу обращаться в базу и заполнять построчно ответами, а если 1000 клиентов, как то не очень красиво получается.
Ответы (1 шт):
Автор решения: 7-zete-7
→ Ссылка
Как один из вариантов: из переменной client_ids создать строку вида
SELECT 1 AS id UNION ALL SELECT 3 AS id UNION ALL SELECT 40 AS id
Где вместо 1, 3, 40 должны быть значения client_ids.
Затем эту строку можно подставить в запрос следующим видом:
SELECT id, NickName, Tel
FROM
clients
RIGHT JOIN (SELECT 1 AS id UNION ALL SELECT 3 AS id UNION ALL SELECT 40 AS id)
AS ids
USING (id)
В таком случае будет получена таблица-пример из вопроса.