数据库连接查询

Posted zeevy

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数据库连接查询相关的知识,希望对你有一定的参考价值。

inner join(内连接),在两张表进行查询时,只保留两张表中完全匹配的结果集:

select 
p.name,p.address,o.orderName 
from person p inner join orders o
on p.id = o.id_p and 1 = 1
order by p.name

单纯的 select * from a,b 查询结果是两张表的笛卡尔积,但是如果是select * from a,b where a.id = b.id_a 等价于 select * from a inner join b on a.id = b.id_a,即内连接,但这种写法不符合规范,推荐不要这样写。

from a,b 和from a inner join b 都是笛卡尔集 

on:与取得结果集同步进行数据筛选和过滤
where:取得结果集后才进行数据筛选和过滤
执行顺序:on在上游,where在中游,having在下游,由此可见,要想过滤条件起到正确的作用,首先要明白这个条件应该在什幺时候起作用,然后再决定放在那里

left join,会返回左表中所有的行,即使在右表中没有匹配记录

right join 会返回右表中所有的行,即使在左表没有匹配的记录

full join会返回左表和右表中所有行,即使没有匹配记录,查询结果是left join和right join的并集

以上是关于数据库连接查询的主要内容,如果未能解决你的问题,请参考以下文章

这些角度电子邮件指令代码片段如何连接

片段视图返回后执行的 Firebase 查询

错误:E/RecyclerView:未连接适配器;跳过片段上的布局

部分代码片段

使用实体框架迁移时 SQL Server 连接抛出异常 - 添加代码片段

你如何在 python 中处理 graphql 查询和片段?