开发者

tsql query to create new table from a combination of two tables

I have a table as开发者_Go百科 follows: table 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

and another table as follows: table 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

I want to fetch all the records from table 1 where variable_1, variable_2 and variable_3 of table 1 doesnot match with table 2.

How can I do that in TSQL?


Try this:

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


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---

The above will "fetch all the records from table 1 where variable_1, variable_2 and variable_3 of table 1 doesnot match with table 2", as you asked.

However, it seems that you want to match the specific rows from table 2 not just any rows (BTW, you should have specified that in your question). If that is the case, Marco's answer looks good.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜