当前位置:   article > 正文

多表联查——三个表_三个表连接查询怎么写

三个表连接查询怎么写

简单介绍下多表联查种类
两个表A和B
1、内连接查询 (只显示符合条件的数据)
关键语句 INNER JOIN 【表名】 ON

SELECT
	znlb.tb_route.id,
	znlb.tb_dev.sbmc,
    znlb.tb_dest.destname,
    znlb.tb_route.route,
    znlb.tb_route.angle
FROM
	znlb.tb_route
INNER JOIN znlb.tb_dev ON
	znlb.tb_route.fromdev=znlb.tb_dev.sbid
INNER JOIN znlb.tb_dest ON
    	znlb.tb_route.destID=znlb.tb_dest.id
WHERE
    	znlb.tb_dev.sbid='1001'
ORDER BY
            	znlb.tb_route.id
ASC
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17

一些提示:

SELECT 与 FROM 之间填写要查询表的的数据,要查询全部就可以用*号表示
FROM 后表示从那个表开始查询
INNER JOIN 与 ON 之间填写与那个表进行查询(INNER表示取交集,LEFT表示取左边,RIGHT表示取右边)
ON 后表示两个表的判断条件
WHERE 后表示查询完后,输出数据的判断条件
ORDER BY 与 ASC 之间表示根据什么显示(ASC递增,DESC递减)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

2、 左外连接查询 (左边表中的数据优先全部显示)
关键语句 LEFT JOIN 【表名】ON

3、 右外连接查询 (右边表中的数据优先全部显示)
关键语句 RIGHT JOIN 【表名】 ON

4 、全连接查询(显示左右表中全部数据)
关键是UNION,一个使用LEFT,一个使用RIGHT

SELECT
	*
FROM
	znlb.tb_route
LEFT JOIN znlb.tb_dest ON
	znlb.tb_route.destID=znlb.tb_dest.id
UNION
SELECT
	*
FROM
	znlb.tb_route
RIGHT JOIN znlb.tb_dest ON
	znlb.tb_route.destID=znlb.tb_dest.id
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13

destdevroute多表查询查询时会出现重复,本来只有一个对应但是查出来全部都对应,显示查询重复,百度一下原来是数据库语句不是正确,使用了笛卡尔数据库查询(自行百度)即,一表m个数据,一表n个数据,显示(m*n)个数据
查重最后解决办法:不要在ON后面跟进实际判断,显示对应判断,然后在WHERE后跟进实际判断,即可消除重复,如图:
WHERE

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

闽ICP备14008679号