mysql或sql中有多少种类型的连接

时间:2013-03-13 05:13:32

标签: mysql sql join left-join right-join

我听说有3种类型的连接

我不确定确切的名字。谷歌搜索出现了各种各样的术语,如:

  

交叉连接,左连接,右连接,内连接,外连接,自连接....

任何人都可以告诉我总共存在多少个连接。

3 个答案:

答案 0 :(得分:5)

联接是

1. Inner Join or Equi join
2. Self Join
2. Outer Join
   outer join is again classified into
   a) Left Outer Join
   b) Right Outer Join
   c) Full Outer Join
3. Cross join

答案 1 :(得分:3)

请看 SQL JOIN:

  

JOIN关键字在SQL语句中用于根据这些表中某些列之间的关系查询来自两个或多个表的数据。

     

数据库中的表通常与密钥相互关联。

     

主键是列(或列的组合),每行具有唯一值。每个主键值在表中必须是唯一的。目的是将数据绑定在表中,而不重复每个表中的所有数据。

     

不同的SQL JOIN

     
      
  1. JOIN:当两个表中至少有一个匹配时返回行
  2.   
  3. LEFT JOIN:返回左表中的所有行,即使右表中没有匹配项
  4.   
  5. RIGHT JOIN:返回右表中的所有行,即使左表中没有匹配项
  6.   
  7. FULL JOIN:当其中一个表中存在匹配时返回行
  8.   

http://w3schools.com/sql/sql_join.asp

答案 2 :(得分:0)

MySql 13.2.9.2. JOIN Syntax

join_table:
    table_reference [INNER | CROSS] JOIN table_factor [join_condition]
  | table_reference STRAIGHT_JOIN table_factor
  | table_reference STRAIGHT_JOIN table_factor ON conditional_expr
  | table_reference {LEFT|RIGHT} [OUTER] JOIN table_reference join_condition
  | table_reference NATURAL [{LEFT|RIGHT} [OUTER]] JOIN table_factor

SQL Server FROM (Transact-SQL)

<joined_table> ::= 
{
    <table_source> <join_type> <table_source> ON <search_condition> 
    | <table_source> CROSS JOIN <table_source> 
    | left_table_source { CROSS | OUTER } APPLY right_table_source 
    | [ ( ] <joined_table> [ ) ] 
}
<join_type> ::= 
    [ { INNER | { { LEFT | RIGHT | FULL } [ OUTER ] } } [ <join_hint> ] ]
    JOIN