mysql数据库join查询

参考BeginMan的博客:网址:http://www.cnblogs.com/BeginMan/p/3754322.html


join可用于多表的查询

... FROM table1 INNER|LEFT|RIGHT JOIN table2 ON conditiona


A表id,name  B表id,name,remark

inner join(内连接),取得2个表中符合条件的记录。--同时符合A,B  2个表。----此为A与B的交集


mysql> select * from A inner join B on A.name = B.name;
+------+----+--------+------+----+
| name | id | remark | name | id |
+------+----+--------+------+----+
| zhou |  1 | zhou   | zhou |  5 |
| ma   |  2 | ma     | ma   |  4 |
+------+----+--------+------+----+
2 rows in set


左连接:
左表为全记录,如果右表没有对照的记录,则右面为Null

mysql> select * from A left join B on A.name = B.name;
+------+----+--------+------+------+
| name | id | remark | name | id   |
+------+----+--------+------+------+
| zhou |  1 | zhou   | zhou |    1 |
| ma   |  2 | ma     | ma   |    4 |
| kong |  3 | NULL   | NULL | NULL |
+------+----+--------+------+------+
3 rows in set


右连接:
右面为全记录,如果左表无,则左表为null

mysql> select * from A right join B on A.name = B.name;
+------+------+--------+------+----+
| name | id   | remark | name | id |
+------+------+--------+------+----+
| zhou |    1 | zhou   | zhou |  1 |
| ma   |    2 | ma     | ma   |  4 |
| kong |    3 | kong   | kong |  5 |
| NULL | NULL | sun    | sun  |  6 |
+------+------+--------+------+----+
4 rows in set



多表查询“

select username,psw,gname,tel from (t1 left join t2 on t1.t1_id=t2.t1_id) left join t3 on t1.t1_id=t3.t1_id”

select dayrecord.dayRID from dayrecord  left join  operationrecord  on dayrecord.dayRID=operationrecord.dayRdID where dayrecord.conve='2' and 表2.id=XX  and 表三.id=xx;

即where 语句,放到left join on 的后面,即可。


应用实例注意:

left join 子查询 ,也可以为: 

select  A.a,A.b,(子查询) as c  from A  A. 

与下面等价:

select  A.a,A.b,B.c   from A  A  left join (子查询) B  B

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值