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)

В таком случае будет получена таблица-пример из вопроса.

→ Ссылка