首页 > 数据库 > MySQL > 正文

mysql LEFT JOIN多表联结查询

2024-07-24 12:38:19
字体:
来源:转载
供稿:网友

在mysql中如果要同时查找多表并且多表时间有关系查询我们有很多种方法来实现,现在我们只介绍利用mysql LEFT JOIN来实现.

具体操作:MySQL支持Select和某些Update和Delete情况下的Join语法,具体语法上的细节有:

  1. table_references: 
  2.    table_reference [, table_reference] … 
  3. table_reference: 
  4.    table_factor 
  5.  | join_table 
  6. table_factor: 
  7.    tbl_name [[AS] alias] 
  8.        [{USE|IGNORE|FORCEINDEX (key_list)] 
  9.  | ( table_references ) 
  10.  | { OJ table_reference LEFT OUTER JOIN table_reference 
  11.        ON conditional_expr } 
  12. join_table: --Vevb.com 
  13.    table_reference [INNER | CROSSJOIN table_factor [join_condition] 
  14.  | table_reference STRAIGHT_JOIN table_factor 
  15.  | table_reference STRAIGHT_JOIN table_factor ON condition 
  16.  | table_reference LEFT [OUTERJOIN table_reference join_condition 
  17.  | table_reference NATURAL [LEFT [OUTER]] JOIN table_factor 
  18.  | table_reference RIGHT [OUTERJOIN table_reference join_condition 
  19.  | table_reference NATURAL [RIGHT [OUTER]] JOIN table_factor 
  20. join_condition: 
  21.    ON conditional_expr | USING (column_list) 

除了常用的两个表连接之外,SQL(MySQL) JOIN 语法还支持多表连接,多表连接基本语法如下:

... FROM table1 INNER|LEFT|RIGHT JOIN table2 ON condition INNER|LEFT|RIGHT JOIN table3 ON condition ...JOIN 多表连接实现了从多个表中获取相关数据,下面是三个原始数据表:

article 文章表:

aid title content uid tid 

1 文章1 文章1正文内容... 1 1 

2 文章2 文章2正文内容... 1 2 

3 文章3 文章3正文内容... 2 1 

5 文章5 文章5正文内容... 4 1 

user 用户表:

uid username email 

1 admin admin@5idev.com 

2 小明 xiao@163.com 

3 Jack jack@gmail.com 

type 文章类型表:

tid typename 

1 普通文章 

2 精华文章 

3 草稿 

代码如下:SELECT * FROM t1 LEFT JOIN (t2, t3, t4) ON (t2.a=t1.a AND t3.b=t1.b AND t4.c=t1.c)

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表