SQL中的联合操作(连表操作)
1、在一个SELECT语句中使用多个表
用法:
SELECT * FROM TABLE_NAME1,TABLE_NAME2
在联合查询时必须要避免笛卡尔积,如:
在user_user表中有6条数据, 在name表中有5条记录。
如果将这两个表用SELECT语句联合查询
SELECT
*
FROM
`test`.`user_user`,
`test`.`name`;
结果会产生笛卡尔积,如下图,结果为30条记录
如果不想产生笛卡尔积,只需增加WHERE子句即可。
如:
SELECT
B.`name`,A.`password`
FROM
`test`.`user_user` A,
`test`.`name` B
WHERE
A.`username` = B.`name`
这种利用两个字段相等的查询叫等值联合,如果遇到两个表的字段名相同但是又想同时查询两表相同的字段时,需要给字段取别名。
如:
有等值联合就有不等值联合,当WHERE子句中使用“=”以外的其他比较运算符连接时就叫不等值联合。
如下:
外联合
外联合是两个不同的表格进行连接,外联合分为左外联合,右外联合
左外联合如下:
右外联合如下:
自联合
顾名思义,就是同一个表自我联合。
如:
以上例子通过自联合查出了subname字段对应的上级
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!
2020-12-16 文件操作,异步用法