码迷,mamicode.com
首页 > 数据库 > 详细

MySQL使用连接实现多表检索

时间:2018-06-21 11:33:19      阅读:178      评论:0      收藏:0      [点我收藏+]

标签:要求   优先   内连接   建议   运算   需要   必须   导致   orm   

1.内连接:

  INNER JOIN ,CRROSS JOIN,JOIN在MySQL中是等价的连接,会产生笛卡尔积。

连接运算符","(逗号)与之类似,但逗号运算符的优先级与其他连接类型的有所不同。有时,在其他连接类型的都正常的情况下,它会导致语法错误,因此建议尽量避免使用逗号运算符


  其他语法格式:使用ON子句代替WHERE子句。如:SELECT t1.*,t.* FROM t1 INNER JOIN t2 ON t1.i1 = t2.i2

  使用USING()子句。它在概念上类似于ON子句,但要求被连接的列必须同名。如以下的查询语句可以将mytbl1.b连接到mytbl2.b

    SELECT mytbl1.*,mytbl2.* FORM mytbl1 INNER JOIN mytbl2 USING (b);

2.左外连接和右外连接

  左外连接是使用LEFT JOIN,右外连接使用RIGHT JOIN

  LEFT JOIN 的工作方式是:先指定用于对两个表里的行进行匹配的列;接着,当左表的某行右表的某行相匹配时,两行的内容会被选取为一个输出行;当左表的某行在右表里无匹配时,

它仍然会被选取为一个输出行,只是与它连接的是右表的一个假行,其中的每一列都包含NULL。

  在使用时需要注意这样一个问题,即只有将右表里的列全部定义为not null的结果集里的行才没有什么问题。例如,右表里包含值为NULL的列,那么就无法将这些null值与标识未匹配行的那些null值区别开来。

 

MySQL使用连接实现多表检索

标签:要求   优先   内连接   建议   运算   需要   必须   导致   orm   

原文地址:https://www.cnblogs.com/dgq-blog/p/9206970.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!