首先创建两张表。

 Select的深入应用(2)

Select的深入应用(2)

全连接

全连接:在检索时指定多个表,将每个表用逗号分隔,这样每个表的数据行都和其他表的每行交叉产生所有可能的组合,这样就是一个全连接。所有可能的组和数即每个表的行数的乘积。

Select的深入应用(2) 

或者:

Select的深入应用(2) 

通常需要where子句来作限制条件,否则全连接将产生很多条数据

Select的深入应用(2) 

 

左连接

左连接:全连接给出FROM子句中所有表都有匹配的行。对于左连接,不仅匹配类似前面的行记录,而且还显示左边的表有而右边的表中无匹配的行。对于这样的行,从右边表选择的列均被显示为NULL。这样,每一匹配的行都从左边的表被选出,而如果右边表有一个匹配的行,则被选中,如果不匹配,行仍然被选中,不过,其中右边相应的列在结果集中均设为NULL。即,LEFT JOIN强制包含左边表的每一行,而不管右边表是否匹配。

Select的深入应用(2) 

上面的结果,即用左边表的每一行与右边表匹配,如果匹配,则选择到结果集中,如果没有匹配,则结果集中,右边表相应的列置为NULL。

一个奇怪的例子:

Select的深入应用(2) 

因为,在结果的最后两行有似乎你不希望的结果。记住,如果只有ON子句的条件,那么左边表的每一行都会返回,只是如果没有匹配的右边表(虽然本例没有约束右边表的列),则记录集中显示为NULL。

与IS NULL或者IS NOT NULL是常用组合

Select的深入应用(2) 

检索id值只在左边表出现而不在右边表出现

Select的深入应用(2) 

相关文章:

  • 2022-02-02
  • 2022-01-14
  • 2020-04-25
  • 2021-10-06
  • 2021-12-26
  • 2022-12-23
  • 2021-09-05
猜你喜欢
  • 2022-03-01
  • 2021-10-11
  • 2022-12-23
  • 2021-10-24
  • 2022-12-23
  • 2022-01-30
相关资源
相似解决方案