经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » 程序设计 » SQL语言 » 查看文章
SQL语句实现多表查询
来源:jb51  时间:2022/7/19 17:04:24  对本文有异议

基本sql语句

SELECT <目标字段> FROM <数据库表> WHERE <查询条件> GROUP BY <分组依据> ORDER BY <排列依据>

多表查询

内连接 :返回满足连接条件的数据

格式:SELECT <目标字段> FROM <INNER JOIN+表名+ON+连接条件> WHERE <查询条件>

注意:理清表与表之间的关系,从哪些表中查出哪些数据,表与表之间的连接条件是什么

例一:双表查询

例二:多表查询

  1. a sys_user user_name => user_id dept_id
  2. b sys_user_role user_id => role_id
  3. c sys_role role_id => role_name
  4. d sys_role_dept role_id => dept_id
  5. e sys_dept dept_id => dept_name parent_id dept_name
  6. f sys_dept parent_id => dept_name
  1. SELECT
  2. a.user_name,
  3. a.user_id,
  4. a.dept_id,
  5. b.role_id,
  6. c.role_name,
  7. e.dept_name,
  8. f.dept_name
  9. FROM
  10. sys_user AS a
  11. INNER JOIN sys_user_role AS b ON b.user_id = a.user_id
  12. INNER JOIN sys_role AS c ON c.role_id = b.role_id
  13. INNER JOIN sys_dept AS e ON e.dept_id = a.dept_id
  14. INNER JOIN sys_dept AS f ON f.dept_id = e.parent_id
  15. WHERE
  16. a.user_name = 'zjzsqxyf01'

外连接:外连接不只列出与连接条件相匹配的行,而是列出左表(左外连接时)、右表(右外连接时)或两个表(全外连接时)中所有符合搜索条件的数据行

(1)左连接:返回左表中的所有数据

格式:SELECT <目标字段> FROM <LEFT JOIN+表名+ON+连接条件> WHERE <查询条件>

(2)右连接:返回右表中的所有数据

格式:SELECT <目标字段> FROM <RIGHT JOIN+表名+ON+连接条件> WHERE <查询条件>

(3)全连接:在等值连接的基础上将左表和右表的未匹配数据都加上

格式:SELECT <目标字段> FROM <FULL JOIN+表名+ON+连接条件> WHERE <查询条件>

自然连接:以两个表具有相同的字段的所有列为基础,返回两个表中满足查询条件的数据

到此这篇关于SQL语句实现多表查询的文章就介绍到这了,更多相关SQL多表查询内容请搜索w3xue以前的文章或继续浏览下面的相关文章希望大家以后多多支持w3xue!

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号