SQL表连接查询使用方法(SQL多表连接查询)

SQL表连接查询使用方法(SQL多表连接查询)
在实际工程中,多个表之间是有关系的。这是不可能的检索表中的所有数据。如果没有表的连接,然后我们需要很多操作。例如,你需要从一个表到B表中检索数据发现的限制条件,它不仅是需要操作多个表,但也不是效率高。书中的实例,例如:
复制代码代码如下所示:
选择FID
从t_customer
其中名=吧
这个SQL语句返回2,即客户的名字FID值迈克2,使fcustomerid等于2的记录可以被检索到t_order。

复制代码代码如下所示:
选择数量的快速增加,FPrice
从t_order
在fcustomerid = 2
让我们在餐桌上连接了一看,有许多不同类型的表连接,如交叉连接,内连接,外连接。

(1)内部连接(内部连接):内部连接将两个表结合起来,只有满足两个表的连接条件的数据才得到。
复制代码代码如下所示:
选择o.fid,o.fnumber,o.fprice,
C.FId,c.fname,C.FAge
从t_order加入t_customer C
在o.fcustomerid = c.fid
注意:在大多数数据库系统中,内部连接是可选的,内部连接是默认的连接模式

表连接的应用不能仅限于两个表,因为在很多情况下需要连接多个表。例如,在t_order表还需要连接两t_customer和t_ordertype表来检索所需的信息,并写下如下的SQL语句:
复制代码代码如下所示:
选择o.fid,o.fnumber,o.fprice,
C.FId,c.fname,C.FAge
从t_order加入t_customer C
在o.fcustomerid = c.fid
内部联接t_ordertype
在t_order ftypeid = t_ordertype.fid。
(2)交叉连接(交叉连接):交叉连接所涉及的所有表中的所有记录都包含在结果集中。定义交叉连接的方法有两种,即隐式和显式连接。

这里有一个隐含的例子:
复制代码代码如下所示:
选择t_customer.fid,t_customer.fname,t_customer.fage,
t_order.fid,t_order.fnumber,t_order.fprice
从t_customer,t_order
使用显式连接,您需要使用交叉连接,例如:

复制代码代码如下所示:
选择t_customer.fid,t_customer.fname,t_customer.fage,
t_order.fid,t_order.fnumber,t_order.fprice
从t_customer
交叉连接t_order
(3)外部连接(外部连接):内部连接获取数据,满足连接条件,与外部的连接,它主要解决了这样一个场景,这是毫无疑问的数据,满足条件的检索。外部连接的数据,这是另一部分检索、数据填充不满足零的要求。首先看外部连接的分类:左外连接(左外连接),对外部连接(右外部联接)和全外连接(fullouter加入)。

我,左对外连接(左外联接):前一个还说,不满意的数据填充为NULL。然后具体需要填补null对于左外部连接,如果在右表中没有匹配所需的左表的数据,则必须用NULL值填充相应的右字段,也就是说,左外部连接的主体是左表和右表以匹配。

复制代码代码如下所示:
选择o.fnumber,o.fprice,o.fcustomerid,
c.fname,c.fage
从t_order O
左外连接t_customer C
在o.fcustomerid = c.fid
注意:如果使用左侧外部连接,则可以使用WHERE语句过滤不兼容的数据。

复制代码代码如下所示:
选择o.fnumber,o.fprice,o.fcustomerid,
c.fname,c.fage
从t_order O
左外连接t_customer C
在o.fcustomerid = c.fid
在o.fprice > = 150
右,ii(右外接)外部连接:左接地连接正好相反,将空值填满字段左表,也就是说,右边的外部连接是右边的表,左边的表要匹配。

复制代码代码如下所示:
选择o.fnumber,o.fprice,o.fcustomerid,
c.fname,c.fage
从t_order O
右外部联接t_customer C
在o.fcustomerid = c.fid
注意:与左侧外部连接一样,您可以使用WHERE语句进行筛选。

三,全外连接(fullouter加入):全外连接是左外连接和外部连接的正确组合。结果集包括设置左外连接和设置正确的外部连接的结果。

复制代码代码如下所示:
选择o.fnumber,o.fprice,o.fcustomerid,
c.fname,c.fage
从t_order O
全外连接t_customer C
在o.fcustomerid = c.fid
结果相当于:

复制代码代码如下所示:
选择o.fnumber,o.fprice,o.fcustomerid,
c.fname,c.fage
从t_order O
左外连接t_customer C
在o.fcustomerid = c.fid
联盟
选择o.fnumber,o.fprice,o.fcustomerid,
c.fname,c.fage
从t_order O
右外部联接t_customer C
在o.fcustomerid = c.fid
免责声明:本网信息来自于互联网,目的在于传递更多信息,并不代表本网赞同其观点。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,并请自行核实相关内容。本站不承担此类作品侵权行为的直接责任及连带责任。如若本网有任何内容侵犯您的权益,请及时联系我们,本站将会在24小时内处理完毕。
相关文章
返回顶部