4张表 进行关联 如何用mysql数据库进行 左联接 和和内连接查询

4张表 进行关联 如何用mysql数据库进行 左联接 和和内连接查询,第1张

把4张表现连起来,"select * from a,b,c,d where a.id=b.id and b.id=c.id and c.id=d.id"接下来你就能输出4张表中你想要的字段里面的内容了

一般所说的左连接,外连接是指左外连接,右外连接。做个简单的测试你看吧。

先说左外连接和右外连接:

[TEST1@orcl#16-12月-11] SQL>select * from t1

ID NAME

---------- --------------------

1 aaa

2 bbb

[TEST1@orcl#16-12月-11] SQL>select * from t2

IDAGE

---------- ----------

1 20

3 30

左外连接:

[TEST1@orcl#16-12月-11] SQL>select * from t1 left join t2 on t1.id=t2.id

ID NAME IDAGE

---------- -------------------- ---------- ----------

1 aaa 1 20

2 bbb

右外连接:

[TEST1@orcl#16-12月-11] SQL>select * from t1 right join t2 on t1.id=t2.id

ID NAME IDAGE

---------- -------------------- ---------- ----------

1 aaa 1 20

3 30

从上面的显示你可以看出:左外连接是以左边的表为基准。通俗的讲,先将左边的表全部显示出来,然后右边的表id与左边表id相同的记录就“拼接”上去,比如说id为1的记录。如果没有匹配的id,比如说t1中id为2的t2中就没有。那边就以null显示。

右外连接过程正好相反。

再看内连接:

[TEST1@orcl#16-12月-11] SQL>select * from t1 inner join t2 on t1.id=t2.id

ID NAME IDAGE

---------- -------------------- ---------- ----------

1 aaa 1 20

看到没有? 只有一条记录。内连接就是只取出符合过滤条件的记录 也就是t1.id=t2.id 那么符合t1.id=t2.id的记录只有id=1这一条,所以只显示一条。 不像外连接,是将你作为基准的表(左外连接就是左边表为基准,右外连接就是右边表为基准)的所有行都显示出来。

分为内连接,左连接,右连接和全连接四种,内连接inner join :组合两个表中的记录,返回关联字段相符的记录,也就是返回两个表的交集(阴影)部分。左连接left join 是left outer join的简写,它的全称是左外连接,是外连接中的一种。 左(外)连接,左表(a_table)的记录将会全部表示出来,而右表(b_table)只会显示符合搜索条件的记录。右表记录不足的地方均为NULL。右连接right join是right outer join的简写,它的全称是右外连接,是外连接中的一种。与左(外)连接相反,右(外)连接,左表(a_table)只会显示符合搜索条件的记录,而右表(b_table)的记录将会全部表示出来。左表记录不足的地方均为NULL。全连接union 单独取出的列数必须相同


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/7564817.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-07
下一篇 2023-04-07

发表评论

登录后才能评论

评论列表(0条)

保存