请帮帮我。创建数据: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);这两个查询之间有什么不同:SELECT * FROM sub1 INTERSECT SELECT * FROM sub2;SELECT sub1.id,sub1.name FROM sub1 JOIN sub2 ON sub1.id = sub2.id;INTERSECT和JOIN有什么区别? 最佳答案 INTERSECT仅比较2个集合,并且从两个集合中仅选择不同的等效值。重要的是要注意,在INTERSECT集运算符中将NULL标记视为相等。集合还应包含相等数量的具有隐式可转换类型的列。 在Join下,我猜你是说INNER JOIN?INNER JOIN将返回匹配谓词为TRUE的行。 IE。如果两个表中都有NULL标记,则不会返回这些行,因为SQL中的NULL NULL。 另外,INTERSECT只是比较所有属性上的SETS。它们的类型应该可以隐式地相互转换。在加入时,您可以比较任何谓词和不同类型的集合。不必仅返回存在匹配项的行。例如,您可以在联接中生产笛卡尔积。Select * from Table1Join Table2 on 1 = 1关于sql - INTERSECT和JOIN有什么区别?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/28193842/
10-12 19:31