ЦКЛ запрос для создания новой таблицы из комбинации двух таблиц - PullRequest
0 голосов
/ 23 сентября 2011

У меня есть следующая таблица: стол 1

temp_id    node_name  variable_1 variable_2 variable_3
1          ab         a          b           y
2          sdd        a          a           a
3          u          a          s           s

и другая таблица следующим образом: стол 2

temp_id    node_name  variable_1 variable_2 variable_3
1          ab         as        sb           y
2          sdd        a          a           a
3          u          a          s           s

Я хочу получить все записи из таблицы 1, где переменная_1, переменная_2 и переменная_3 таблицы 1 не соответствуют таблице 2.

Как я могу это сделать в TSQL?

Ответы [ 2 ]

3 голосов
/ 23 сентября 2011

Попробуйте это:

INSERT INTO new_table
SELECT t1.* FROM table1 AS t1
LEFT JOIN table2 AS t2
ON t1.temp_id = t2.temp_id AND 
   t1.node_name = t2.node_name
WHERE t1.variable_1 <> t2.variable_1 AND
      t1.variable_2 <> t2.variable_2 AND
      t1.variable_3 <> t2.variable_3
1 голос
/ 23 сентября 2011
SELECT * FROM [table 1] t1
WHERE NOT EXISTS (
    SELECT * FROM [table 2] t2
    WHERE
        t1.variable_1 = t2.variable_1
        AND t1.variable_2 = t2.variable_2
        AND t1.variable_3 = t2.variable_3
)

--- EDIT ---

Вышеприведенное "извлечет все записи из таблицы 1, где variable_1, variable_2 и variable_3 таблицы 1 не соответствуют таблице 2", как вы и просили.

Однако, похоже, что вы хотите сопоставить конкретные строки из таблицы 2, а не только какие-либо строки (кстати, вы должны были указать это в своем вопросе).Если это так, то ответ Марко выглядит неплохо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...