赞
踩
简单介绍下多表联查种类
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
一些提示:
SELECT 与 FROM 之间填写要查询表的的数据,要查询全部就可以用*号表示
FROM 后表示从那个表开始查询
INNER JOIN 与 ON 之间填写与那个表进行查询(INNER表示取交集,LEFT表示取左边,RIGHT表示取右边)
ON 后表示两个表的判断条件
WHERE 后表示查询完后,输出数据的判断条件
ORDER BY 与 ASC 之间表示根据什么显示(ASC递增,DESC递减)
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
多表查询查询时会出现重复,本来只有一个对应但是查出来全部都对应,显示查询重复,百度一下原来是数据库语句不是正确,使用了笛卡尔数据库查询(自行百度)即,一表m个数据,一表n个数据,显示(m*n)个数据
最后解决办法:不要在ON后面跟进实际判断,显示对应判断,然后在WHERE后跟进实际判断,即可消除重复,如图:
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。