【问题标题】:What is "master join" in sql什么是 sql 中的“主连接”
【发布时间】:2018-03-01 04:24:39
【问题描述】:
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 

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

“master join”的目的是什么,我们应该在什么时候使用它?

【问题讨论】:

  • 我认为master 是表sales 的别名。例如你可以写select * from sales AS mselect * from sales m
  • @Leran2002 你认为是吗?
  • @philipxy 是的,第一个版本的问题是“master join in sql”。后来被编辑了。看stackoverflow.com/posts/49042605/revisions
  • @Leran2002 谢谢。但我不明白你评论的重点或第一个(标题)版本的意义。我想说的是,从代码中可以清楚地看出 master 一个别名,因此应该删除“我认为”并且您不应该对“我认为”有任何疑问建议,虽然这不是它的字面意思。但也许你只是不确定。
  • @philipxy 好的,我明白你的意思。 :) 你说得对,think 这个词在那里是不必要的。我会尽量不使用这样的表达方式。

标签: sql sql-server database join


【解决方案1】:

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

我强烈建议对查询的其余部分进行限定,因为...car on cid = id现在有效,但不是很好的形式,因为如果 salescar 表有相同的列名,你会得到一个关于歧义的错误。

另外,请决定是否要使用INNER JOINLEFT OUTER JOIN 等。[Types of joins],因为以后从维护的角度来看,您想要什么会更清楚。

SELECT master.sid
    ,master.cid
    ,master.year1
    ,c.name1
FROM sales master
INNER JOIN car c ON master.cid = c.id --(1st)

SELECT s.sid
    ,s.cid
    ,s.year1
    ,c.name1
FROM sales s
INNER JOIN car c ON s.cid = c.id --(2nd)

【讨论】:

    【解决方案2】:

    sql 中没有称为 Master Join 的概念。

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

    上面的查询以master作为sales表的别名,并在sales表和car表之间进行内连接 您可以使用别名(master)引用cid,如下所示:

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

    【讨论】:

      猜你喜欢
      • 2014-06-04
      • 1970-01-01
      • 1970-01-01
      • 2018-06-19
      • 1970-01-01
      • 1970-01-01
      • 2010-11-09
      • 2010-12-01
      相关资源
      最近更新 更多