MySQL使用连接实现多表检索

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值区别开来。

 

转载于:https://www.cnblogs.com/dgq-blog/p/9206970.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值