请帮帮我。
创建数据:
CREATE TABLE sub1(id int,name nvarchar(7));
CREATE TABLE sub2(id int,name nvarchar(7));
INSERT INTO sub1 VALUES(1,'one1');
INSERT INTO sub2 VALUES(1,'one1');
INSERT INTO sub1 VALUES(2,'one2');
INSERT INTO sub2 VALUES(2,'one2');
INSERT INTO sub1 VALUES(3,'one3');
INSERT INTO sub2 VALUES(4,'one4');
INSERT INTO sub1 VALUES(5,'one5');
INSERT INTO sub2 VALUES(6,'one6');
INSERT INTO sub1 VALUES(NULL,NULL);
INSERT INTO sub2 VALUES(NULL,NULL);
2个查询之间有什么区别:
SELECT * FROM sub1 INTERSECT SELECT * FROM sub2
SELECT sub1.id,sub1.name FROM sub1 JOIN sub2 ON sub1.id = sub2.id
INTERSECT和JOIN有什么区别?
答案 0 :(得分:5)
INTERSECT也只是比较所有属性的SETS。它们的类型应该可以隐含地相互转换。在连接中,您可以比较任何谓词和不同类型的集合。只返回匹配的行并不是必须的。例如,您可以在加入中生产笛卡尔积。
Select * from Table1
Join Table2 on 1 = 1