..


赞助商链接

一个INNER JOIN或取得相反的记录不匹配

由Max博西写文章

谁知道什么样的SQL知识的JOIN。 在我们的指南和其他文章中,我们解释了JOIN和如何创建一个数据库之间不同表的关系。

最常见的需求是满足由仪器JOIN来找出两个表之间,在这种情况下抢救INNER JOIN子句的精确定位,并返回字段满足通信在两个或更多地参与寻求匹配表在JOIN。

更不直观的,相反是需要确定的字段,没有在JOIN匹配。

让我们以一个例子。
假设你要管理的电子商务数据库只有两个表组成:

  • 客户 (含客户的主数据)
  • 订单 (含客户作出的命令)
现在假设你要提取的两个不同的客户名单:1)是谁已经下了订单,2)是谁尚未购买任何客户名单客户名单。

为了满足第一个要求,当然是很简单:

 



 SELECT CUSTOMER.FIRST,CUSTOMER.LAST







从客户







 INNER JOIN订单







 ON = clienti.id ordini.id_cliente







 ORDER BY ASC CUSTOMER.LAST

 
到目前为止没有问题。

但如何才能做到扭转结果呢? 嗯... ... 首先,不使用INNER JOIN,LEFT JOIN,而是找到一个匹配的完整的而不是局部的,在那里,不过,从左边表结果返回反正。
如果没有这一点,我们将看看(使用WHERE子句)的纪录,丢失(即在报告中没有发现),然后为NULL(在SQL NULL是作为一种“特殊值”标识的那种价值的情况下定义确定...)

让我们来看看代码:

 



 SELECT CUSTOMER.FIRST,CUSTOMER.LAST







从客户







 LEFT JOIN订单







 ON = clienti.id ordini.id_cliente







 WHERE IS NULL ordini.id_cliente







 ORDER BY ASC CUSTOMER.LAST

 
其结果是,在事实上,我们的客户谁没买过任何名单。

在同一类...
电子学习
MS访问(高级) MS访问(高级)
了解如何创建和管理数据库迅速和容易。 起价29€。
MySQL的(课程) MySQL的(课程)
管理的开放源码数据库。 从39€。
SQL和数据库(课程) SQL和数据库(课程)
创建和管理关系数据库。 从39€。
赞助商链接