У меня есть две таблицы в базе данных (myCustomTable1 и myCustomTable2), и из них я создаю еще две таблицы (Table1 и Table2), которые создаются во время выполнения. Теперь мне нужно взять строки, которые находятся внутри Таблицы1, но отсутствуют в Таблице2.
Я нашел этот вопрос , который, кажется, содержит ответ, который мне нужен, но я не могу реализовать это с моим решением, потому что, как уже говорилось, таблицы, которые мне нужно "противодействовать", генерируется во время выполнения.
Обе мои (сгенерированные во время выполнения) таблицы имеют формат:
-----------------------
| Column1 | Column2 |
-----------------------
| | |
-----------------------
| | |
-----------------------
Вот код, который у меня есть.
SELECT Table1.* FROM (
SELECT myCustomTable1.Column1,
myCustomTable1.Column2
) as Table1
LEFT JOIN
(
SELECT Table2.* FROM (
SELECT myCustomTable2.Column1,
myCustomTable2.Column2
) as Table2
)
ON Table1.Column1 = Table2.Column1
AND Table1.Column2 = Table2.Column2
Теперь я знаю, что это решение не работает, потому что при попытке присоединиться я пытаюсь использовать Table2, который недоступен в глобальной области, но я не могу найти подходящего решения.
Возможно, также можно использовать NOT EXISTS
, LEFT OUTER JOIN
или NOT IN
, но при каждой попытке я сталкивался с одной и той же проблемой, в которой проблема связана с областью действия определенных таблиц.