什么是"主要加入"在sql中

时间:2018-03-01 04:24:39

标签: sql sql-server database join

CREATE TABLE car (id INT, name1 CHAR(15))
CREATE TABLE sales (sid INT, cid INT, year1 INT)

INSERT INTO car
VALUES (1, 'vento'), (2, 'vento'), (3, 'baleno'), (4, 'swift')
INSERT INTO sales
VALUES (1, 1, 2017), (2, 3, 2018), (3, 3, 2017), (5, 4, 2017)

--verify
--SELECT * FROM car
--SELECT * FROM sales

--1st query
SELECT sid, cid, year1, name1
FROM sales master
INNER JOIN car ON cid = id 

--2nd query
SELECT sid, cid, year1, name1
FROM sales
INNER JOIN car ON cid = id 

第一个和第二个查询之间有什么区别?

"主要加入"的目的是什么?我们什么时候应该使用它?

2 个答案:

答案 0 :(得分:3)

没有什么不同,它在功能上是相同的。 为了解释,我已对列名称进行了限定,以证明master只是别名。

我强烈建议您对查询的其余部分进行限定,因为...car on cid = id现在工作,但不是好形式,因为{{1} }或sales表具有相同的列名,您会收到有关歧义的错误。

另外,决定是否要使用carINNER JOIN等。[Types of joins]因为从维护的角度来看,您希望以后更清楚

LEFT OUTER JOIN

答案 1 :(得分:1)

在sql中没有名为Master Join的概念。

SELECT 
sid, cid, year1, name1
FROM sales master
INNER JOIN car 
ON 
cid = id 

上述查询将master作为sales表的别名,并在sales表和car表之间进行内部联接 你可以使用alias(master)来引用cid,如下所示:

SELECT 
sid, cid, year1, name1
FROM sales master
INNER JOIN car 
ON 
master.cid = id