Mysql联表查询

来源:互联网 发布:巨人网络有哪些手游 编辑:程序博客网 时间:2024/05/17 23:12
  1. 内连接:join,inner join
  2. 外连接:left join,left outer join,right join,right outer join,union
  3. 交叉连接:cross join

语法:

SELECT 新表名a.字段名 (新字段名),新表名b.字段名 (新字段名) FROM1 新表名a  INNER JOIN2 新表名bON 新表名a.* = 新表名b.*  WHERE 条件

ex:

tableA:

id name 1 a 2 b 3 c

tableB:

id sex 2 男 3 女 4 女
SELECT a.*, b.* FROM tableA aJOIN tableB bON a.id = b.id

结果如下:

id name id sex 2 b 2 男 3 c 3 女

SELECT a.*, b.* FROM tableA aLEFT JOIN tableB bON a.id = b.id

结果如下:

id name id sex 1 a null null 2 b 2 男 3 c 3 女

SELECT a.*, b.* FROM tableA aLEFT JOIN tableB bON a.id = b.idWHERE b.id = null

结果如下:

id name id sex 1 a null null

SELECT a.*, b.* FROM tableA aRIGHT JOIN tableB bON a.id = b.id

结果如下:

id name id sex 2 b 2 男 3 c 3 女 null null 4 女

SELECT a.*, b.* FROM tableA aRIGHT JOIN tableB bON a.id = b.idWHERE a.id = null

结果如下:

id name id sex null null 4 女

SELECT a.*, b.* FROM tableA aLEFT JOIN tableB bON a.id = b.idUNIONSELECT a.*, b.* FROM tableA aRIGHT JOIN tableB bON a.id = b.id

结果如下:

id name id sex 1 a null null 2 b 2 男 3 c 3 女 null null 4 女

SELECT a.*, b.* FROM tableA aLEFT JOIN tableB bON a.id = b.idWHERE b.id = nullUNIONSELECT a.*, b.* FROM tableA aRIGHT JOIN tableB bON a.id = b.idWHERE a.id = null

结果如下:

id name id sex 1 a null null null null 4 女

SELECT a.id aid,a.name,b.id bid,b.sex FROM tableA aCROSS JOIN tableB b

结果如下:

aid name bid sex 1 a 2 男 2 b 2 男 3 c 2 男 1 a 3 女 2 b 3 女 3 c 3 女 1 a 4 女 2 b 4 女 3 c 4 女
原创粉丝点击