2013-12-10 4 views
0

Как получить идентификаторы, которые не имеют записи в таблице? Как, например,Возврат не существует записи в таблице

select id,name,mail from users where id in(2,3,4,5,6) 

Запрос возвращает выходной сигнал для записи 2,3,4, но не 5 и 6, поскольку есть запись не существует в таблице.

Теперь я хочу знать, что такое идентификаторы, которые не имеют записи в таблице. Есть ли способ получить этот вывод в mysql?

+0

Если вы больше, чем один стол для обозначения, это возможно. –

+0

Проблема в том, что вы пытаетесь вернуть данные ... которые не существуют :) Если эти данные существуют в вашем приложении, вам придется отправить запрос на обработку в своем приложении. –

ответ

2

Try:

SELECT id 
FROM (
    SELECT 2 as id 
    union 
    SELECT 3 
    union 
    SELECT 4 
    union 
    SELECT 5 
    union 
    SELECT 6 
) q 
WHERE q.id NOT IN (SELECT id FROM users) 
+0

Это нормально для статических идентификаторов, и я дал это в качестве примера для лучшего понимания. Но все идентификаторы приходят как динамические здесь .... извините, если я не понимаю в объяснении ... –

+0

Чтобы выбрать и отобразить «строки» в MySql, они должны быть извлечены из таблицы, результатов запроса или Посмотреть. Вы можете создать временную таблицу и сохранить эти элементы в этой таблице. Вы можете создать динамический SQL (с UNION). Если вы хотите передать эти значения в виде строки, вы должны создать процедуру, которая анализирует эту строку на отдельные значения и сохраняет их в таблицу. К сожалению, MySql неловко, выполнить такую ​​задачу в MySql не так-то просто, другие базы данных гораздо удобнее, посмотрите, насколько легко в PostgreSQL: http://www.sqlfiddle.com/#!15/ f3e48/8 – krokodilko

Смежные вопросы