Извините для запутанного названия, я думаю, что мой вопрос немного сложно сказать. У меня две таблицы, назовем их «A» и «B», и у каждого из них много столбцов. Для простоты предположим, что у них есть только столбцы «1» и «2».Удалить строки из таблицы «A», где значения столбца «1» в столбце «A» соответствуют столбцу «1» в таблице «B», но значения столбца «2» в «A» не существуют в «B»
Теперь для интересной части я хочу написать SQL-запрос, который для каждого числового значения в столбце 1 таблицы A проверяет, существуют ли значения столбца 2 таблицы A в столбце 2 таблицы B при фильтрации это значение столбца 1. И если эти значения в таблице B не существуют, удалите эту строку в таблице A.
Например, значения строки 1 в каждой таблице являются идентификаторами объектов, используемых в другом месте. Когда я фильтрую по определенному идентификатору в каждой таблице, я вижу больше строк в таблице A, чем мне хотелось бы, разница - это столбец 2, который является связанной датой. Я хочу удалить те дополнительные строки, связанные с датами, которые находятся в A, а не в B, когда я фильтрую для этого идентификатора.
Я не могу просто использовать NOT IN или NULL заявление, как те, которые используются здесь: Delete sql rows where IDs do not have a match from another table или здесь: Delete from table if the id doesn't exists in another table , потому что некоторые все значения в каждом столбце каждой таблицы существуют где-то в другой таблице, просто не с соответствующим фильтром.
Это мой первый вопрос, задающий вопрос по SE, и я попытался изо всех сил объяснить, но дайте мне знать, если я могу предоставить любую другую информацию! Благодаря!
Я удалил несовместимые теги базы данных. Пожалуйста, пометьте базу данных, которую вы действительно используете. Кроме того, данные примера и желаемые результаты действительно помогут вам объяснить. –
Добавьте пример данных таблицы и ожидаемый результат (также форматированный текст.) Также покажите нам свою текущую попытку запроса. – jarlh