楼主: 詹惠儿
1480 10

[CDA] mysql的连接方式 [推广有奖]

  • 0关注
  • 15粉丝

硕士生

15%

还不是VIP/贵宾

-

威望
0
论坛币
2024 个
通用积分
40.9309
学术水平
23 点
热心指数
22 点
信用等级
10 点
经验
4126 点
帖子
106
精华
0
在线时间
132 小时
注册时间
2018-7-15
最后登录
2024-8-11

楼主
詹惠儿 发表于 2019-3-25 14:08:13 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
mysql的连接方式
mysql的连接方式主要分为横向合并和纵向合并,本文将分别进行讲解:

1. 横向合并
1.1 MySQL内连接
  MySQL的内连接使用inner join on,它的效果跟使用where是一样的,如果联结的是两个表,那么需要左右的条件或者说字段是需要完全匹配的。

SELECT <select_list> FROM A
INNER JOIN B ON A.Key = B.Key;
另一种写法:
select <select_list> from A,B
where A.Key = B.Key


1.2 MySQL外连接
mysql外连接包括左连接和右连接,二者连接方式相同,区别是选取的主表不一样。

1.2.1左连接:
两个表进行左连接时会返回左边表中的所有的行和右边表中与之相匹配的列值没有相匹配的用空值代替。
SELECT <select_list> FROM A
LEFT JOIN B ON A.Key = B.Key;

(A:主表出所有行;B:附表出匹配行,总行数为A*B行)

1.2.2 右连接:
两个表进行右连接时会返回右边表中的所有的行和左边表中与之相匹配的列值没有相匹配的用空值代替。
SELECT <select_list> FROM A
RIGHT JOIN B ON A.Key = B.Key;


2 纵向合并
联合查询
union: 用于合并两个或多个 SELECT 语句的结果集,并消去表中任何重复行。
例: 用union合并t1与t2表
select t1.* from t1
union
select t2.* from t2;

union all:用于合并两个或多个 SELECT 语句的结果集,保留重复行。
例: 用union all合并t1与t2表
select t1.* from t1
union all
select t2.* from t2;

注:
1. 如果连接具有相同列名称的多个表,则必须在SELECTON子句中使用表名标注,以避免列错误。
例如,如果t1t2表都具有名为c的一个相同列名,则必须在SELECTON子句中使用表限定符,如使用t1.ct2.c指定引用是那个表中的c列。

2. 为了节省书写表名的时间,可以在查询中使用表别名。 例如,可以将表名称verylonglonglong_tablename使用表别名t,然后使用t.column引用其列。

二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:连接方式 横向合并 纵向合并 联合查询 完全匹配

已有 1 人评分论坛币 学术水平 热心指数 信用等级 收起 理由
经管之家编辑部 + 100 + 3 + 3 + 3 精彩帖子

总评分: 论坛币 + 100  学术水平 + 3  热心指数 + 3  信用等级 + 3   查看全部评分

本帖被以下文库推荐

沙发
经管之家编辑部 在职认证  发表于 2019-3-25 15:23:10
为您点赞!

藤椅
充实每一天 发表于 2019-3-25 16:18:07 来自手机
点赞~

板凳
珍惜点滴 学生认证  发表于 2019-3-25 18:20:15
感谢分享,为您点赞!

报纸
hifinecon 发表于 2019-3-25 19:06:12

地板
sulight 学生认证  发表于 2019-3-25 23:30:19
谢谢分享

7
从1万到一亿 在职认证  发表于 2019-3-26 07:14:04
谢谢分享,点赞!

8
bnecons 发表于 2019-3-28 11:02:03
谢谢你的分享 点赞

9
lunqipan 发表于 2019-3-29 00:40:27
使用表别名有两个好处:
缩短SQL语句;
允许在一条SELECT语句中多次使用相同的表。

10
lunqipan 发表于 2019-3-29 00:54:24
使用限定名词(表名/表别名.列名),可以确保表结构的更改不会引入二义性;
要提高性能,应该在联结查询中对所有列使用限定名称。

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
jg-xs1
拉您进交流群
GMT+8, 2025-12-29 22:26