随笔 - 44  文章 - 0  评论 - 0  阅读 - 19171

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字段对应的上级

posted on   坚持_学习  阅读(345)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!
历史上的今天:
2020-12-16 文件操作,异步用法
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

点击右上角即可分享
微信分享提示