Я хочу выполнить запрос, чтобы найти несовпадающие идентификаторы. У меня есть список идентификаторов, и мне нужна вся информация о них, поэтому я сделал простой запрос, например:
SELECT * FROM table1 WHERE id IN(list_of_ids);
Обратите внимание, что «list_of_ids» - это список, содержащий 274 числа, как в примере ниже (в формате (number1, number2, number3)
+---------+
| id |
+---------+
| 112234 |
| 345657 |
| 45332 |
| 1234665 |
| 213423 |
+---------+
Я получил 151 строку, так что есть некоторые идентификаторы, о которых я не знаю информации. Я хочу посмотреть, какие это идентификаторы, просто чтобы проверить качество и посмотреть, есть ли произошла какая-то ошибка с запросом / опечаткой, или у меня действительно нет информации о них (в чем я сомневаюсь).
Я пробовал некоторые методы, которые я нашел при поиске, но ни один из них не работал (например, используя функцию VALUES
и создавая временные таблицы)
Я знаю, что могу просто создать новую таблицу со столбцом и этими значениями, а затем сделать что-то в строке
SELECT * id2 FROM table2 JOIN table1 WHERE id2 NOT LIKE id1";
(не тестировал это, но я думаю, это может сработать)
Но я чувствую, что это то, с чем я буду часто сталкиваться в будущем, поэтому я предпочитаю более прямой способ сделать это, а не создавать стол каждый раз. Также я думаю, что обучение более прямым способом предпочтительнее, чем создание и удаление таблиц для «простых» задач вроде этой
Есть ли способ сделать что-то вроде
SELECT id2 FROM subquery JOIN table1 WHERE id2 != id1 FROM (SELECT * FROM table1 WHERE id IN (list_of_ids)) AS subquery;
Я знаю, это было бы никогда не работаю, а просто чтобы показать то, чего я хочу достичь. Извините за кровотечение!
Спасибо!