繁体   English   中英

内部联接两个表

[英]Inner join two tables

  1. 当进行内部联接时,相等值的条件始终是一个表中的主键与另一个表中的外键相等的情况。
  2. 当内部联接两个具有复合主键和复合外键的表时,是否总是需要通过主键和外键值的每个分量的相等性来联接两个表。
  1. 不,并非总是如此。 但这是我们通常要做的,这是规范模式。 (SQL INNER JOIN操作不需要谓词是相等比较。并且不必在PRIMARY KEY和/或FOREIGN KEY列上进行比较。)

  2. 同样,这是规范模式,但这不是INNER JOIN的要求。 如果目的是对主键/外键关系执行联接,那么可以,谓词将是对键的所有组件列进行相等比较。

  1. 您可以按任何字段按两个表进行内部联接,但是...描述基本表和从属表的标准内部联接。 而通过具有索引的字段进行联接是性能问题
  2. 答案与第一个问题相同-您可以根据需要进行内部联接。 这取决于您的架构以及在联接两个表时的期望

答案是否定的

JOIN操作的ON子句可以包含任何计算结果为1或0或不包含任何表达式。

例如,您可以编写此代码。

  FROM t1
  JOIN t2 ON INSTR(t1.name, t2.surname) > 0 AND t2.nationality = 'US'

甚至更可怕的事情。

外键有助于强制执行约束。 并且,在有利的情况下,关联的索引会加速查询。 但是JOIN子句完全不限于使用键和索引。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM