当前位置:   article > 正文

mysql多表查询_mysql查2个表

mysql查2个表

一、通过select子句进行多表查询

准备两张表:一张users用户表,一张user_addr用户地址表,它们有共同的user_id

select 字段名 from 表1,表2... where 表1.字段=表2.字段 add其他查询条件

  1. select addr_id,city,username,password
  2. from users,user_addr
  3. where users.user_id=user_addr.user_id;

二、通过内连接inner join进行查询

select 字段名 from 表1 inner join 表2 on 表1.字段=表2.字段

  1. select addr_id,city,username,password
  2. from users
  3. inner join user_addr
  4. on users.user_id=user_addr.user_id;

三、通过外连接left join,left outer join,right join,right outer jion,union进行查询

  1. left join

    语法:select 字段名 from 表1 left join 表2 on 表1.字段=表2.字段

    1. select addr_id,city,username,password
    2. from users
    3. left join user_addr
    4. on users.user_id=user_addr.user_id

  2. left outer join(相当于left join+[where表2.字段 is null])

    语法:select 字段名 from 表1 left join 表2 on 表1.字段=表2.字段 where 表2.字段is null

    1. select addr_id,city,username,password
    2. from users
    3. left join user_addr
    4. on users.user_id=user_addr.user_id
    5. where user_addr is null

  3. right join

    语法:select 字段名 from 表1 right join 表2 on 表1.字段=表2.字段

    1. select addr_id,city,username,password
    2. from users
    3. right join user_addr
    4. on users.user_id=user_addr.user_id

  4. right outer join(相当于right join+[where 表1.字段 is null])

    语法:select 字段名 from 表1 right join 表2 on 表1.字段=表2.字段 where 表1.字段is null

    1. select addr_id,city,username,password
    2. from users
    3. right join user_addr
    4. on users.user_id=user_addr.user_id
    5. where users.user_id is null

  5. left join union right join

    语法:select 字段名 from 表1 left join 表2 on 表1.字段=表2.字段 union select 字段名 from 表1 right join 表2 on 表1.字段=表2.字段

    1. select addr_id,city,username,password
    2. from users
    3. left join user_addr
    4. on users.user_id=user_addr.user_id
    5. union
    6. select addr_id,city,username,password
    7. from users
    8. right join user_addr
    9. on users.user_id=user_addr.user_id

四、结果展示

两张备用表

select子句多表查询及内连接

 左连接

右连接

  union

两表数据查询

 准备表a、b

添加测试数据

b表

a表

 b表和a表的不同的数据:

b表特有

a表特有

案例1:查询表b有表a没有的数据

SELECT * FROM b WHERE NOT EXISTS (SELECT 1 FROM a WHERE b.name = a.name)

案例2:查询表a有表b没有的数据

SELECT * FROM a WHERE NOT EXISTS (SELECT 1 FROM b WHERE b.name = a.name)

案例3:INSERT IGNORE INTO 语句

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/码创造者/article/detail/754443
推荐阅读
相关标签
  

闽ICP备14008679号