【问题标题】:visualizing inner joins with three tables [closed]用三个表可视化内部连接[关闭]
【发布时间】:2012-12-31 00:14:37
【问题描述】:

谁能解释这两种连接类型之间的区别以及如何可视化它们?不知道什么时候用哪个...

Ex1

select a.f1, a.f2, b.f1, b.f2
from table_a a
inner join table_c c
    on a.id = c.id
inner join table_b b
    on c.id = b.id

前 2

SELECT a.au_lname,
       a.au_fname,
       t.title
FROM   authors a
       INNER JOIN titleauthor ta
         ON a.au_id = ta.au_id
       JOIN titles t
         ON ta.title_id = t.title_id
WHERE  t.type = 'trad_cook'
ORDER  BY t.title ASC 

使用这个不相关的维恩图 - 这两个查询返回什么?

【问题讨论】:

  • 如果你的意思是INNER JOINJOIN之间的区别,没有区别。
  • 我看不出你的两个例子有什么显着差异。
  • 鸭子有什么区别?它的一条腿是一样的!
  • 第二个查询将结果限制为带有t.type = 'trad_cook' 的行,而第一个查询根本没有where 子句。除此之外没有真正的区别。
  • 好的,谢谢。使用上面的维恩图,我返回的是图表的哪一部分?

标签: sql join


【解决方案1】:

这只是意味着您在SELECT 语句中加入三个表。

  • authors 加入了 titleauthor
  • titleauthor 加入了 titles

要了解有关联接的更多信息,请参阅下面的文章,

【讨论】:

  • 我得到了 2 个表,但不是 3 个......在第 3 个情况下,连接是什么样的?
  • @nivyaj - 您发布的两个示例都连接了 3 个表。
  • @nivyaj 那么这些是什么:authorstitleauthortitles
  • 对不起,我得到了 2 个表格的可视化,但不是 3 个。你能看一下我添加的维恩图并解释一下这个上下文中的连接吗?
  • @nivyaj - 所以在你的维恩图的情况下它会是书呆子,因为它是所有三个表的交集,尽管 TBH 使用维恩图来可视化连接是一个有缺陷的概念。
猜你喜欢
  • 1970-01-01
  • 2015-03-09
  • 1970-01-01
  • 2014-10-16
  • 1970-01-01
  • 2016-06-19
  • 2021-07-23
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多