/ / tsql zapytanie, aby utworzyć nową tabelę z kombinacji dwóch tabel - sql, tsql

Zapytanie tsql do utworzenia nowej tabeli z połączenia dwóch tabel - sql, tsql

Mam następujący stół: Tabela 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

oraz następną tabelę: Tabela 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

Chcę pobrać wszystkie rekordy z tabeli 1, gdzie zmienna_1, zmienna_2 i zmienna_3 tabeli 1 nie są zgodne z tabelą 2.

Jak mogę to zrobić w TSQL?

Odpowiedzi:

1 dla odpowiedzi № 1
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
)

---EDYTOWAĆ---

Powyższe „pobierze wszystkie rekordy z tabeli 1, gdzie zmienna_1, zmienna_2 i zmienna_3 tabeli 1 nie są zgodne z tabelą 2”, tak jak prosiłeś.

Wydaje się jednak, że chcesz dopasować określone wiersze z tabeli 2, a nie tylko dowolne wiersze (BTW, powinieneś był to określić w swoim pytaniu). W takim przypadku odpowiedź Marco wygląda dobrze.


3 dla odpowiedzi № 2

Spróbuj tego:

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