标题:1 对多的关系时,如何让左连接与 右连接 内连接的查询结果都一致
只看楼主
yiyaozjk
Rank: 2
等 级:论坛游民
帖 子:231
专家分:30
注 册:2010-3-10
结帖率:51.67%
已结贴  问题点数:20 回复次数:6 
1 对多的关系时,如何让左连接与 右连接 内连接的查询结果都一致
完整的数据库.zip (231.11 KB)

同样是1 对多 的数据库关系
为什么我建的数据里,左连接与 右连接 内连接的查询结果确实都不一样。。。要怎么改才能让左连接与 右连接 内连接的查询结果都一致。。。。
例如:sjjtz    事件发展情况表。
      shijianb 事件名称表
str = "select distinct  a.bumen,a.xuhao,a.sjsm,b.gzrr,b.sjzt from sjjtz AS a INNER JOIN shijianb AS b ON a.xuhao=b.xuhao  where (b.sjzt<>'完成' or b.sjzt<> '完结') and a.xuhao='" & Trim(mrc1.Fields(2)) & "' and a.bumen='" & Trim(mrc1.Fields(0)) & "' and  a.zs='" & zs & "'"

   这是为何?

我用SQL 语句 去用友ERP软件中进行查询,它们的数据库 发现竟然左连接与 右连接 内连接的查询结果完全一致。
     (比如按物料表 与和入库单  关联字段是物料编号)同样是1 对多 ,即相同的物料可以在不同入库单里同时出现,甚至在同一张入库单里同时多次出现。但一个物料只能对应一个物料名称。。。。

    是在什么情况下才会使数据库,在让左连接与 右连接 内连接的查询结果都一致? 我把我的建的数据库上传上来了。。。
搜索更多相关主题的帖子: 如何 where 情况表 查询 
2012-11-25 13:24
半杯清茶
Rank: 4
等 级:业余侠客
威 望:6
帖 子:39
专家分:297
注 册:2012-11-13
得分:10 
内连接。(典型的连接运算,使用像   =   或   <>   之类的比较运算符)。包括相等连接和自然连接。     
      内连接使用比较运算符根据每个表共有的列的值匹配两个表中的行。例如,检索   students   和   courses   表中学生标识号相同的所有行。   
   
      外连接。外连接可以是左向外连接、右向外连接或完整外部连接。     
      在FROM子句中指定外连接时,可以由下列几组关键字中的一组指定:   
      LEFT   JOIN   或   LEFT   OUTER   JOIN。     
      左向外连接的结果集包括LEFT  OUTER子句中指定的左表的所有行,而不仅仅是连接列所匹配的行。如果左表的某行在右表中没有匹配行,则在相关联的结果集行中右表的所有选择列表列均为空值。   
      RIGHT  JOIN  或  RIGHT   OUTER   JOIN。     
      右向外连接是左向外连接的反向连接。将返回右表的所有行。如果右表的某行在左表中没有匹配行,则将为左表返回空值。   
   
      FULL   JOIN   或   FULL   OUTER   JOIN。     
      完整外部连接返回左表和右表中的所有行。当某行在另一个表中没有匹配行时,则另一个表的选择列表列包含空值。如果表之间有匹配行,则整个结果集行包含基表的数据值。   
   
      交叉连接。交叉连接返回左表中的所有行,左表中的每一行与右表中的所有行组合。交叉连接也称作笛卡尔积。
2012-11-26 09:15
cnfarer
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:179
帖 子:3330
专家分:21157
注 册:2010-1-19
得分:10 
回复 楼主 yiyaozjk
当所有数据完整时,才可能有相同的结果:左表里的记录,右表中都必须有相应的记录;而右表里的记录,左表也必须有记录相对应.

★★★★★为人民服务★★★★★
2012-11-26 10:34
yiyaozjk
Rank: 2
等 级:论坛游民
帖 子:231
专家分:30
注 册:2010-3-10
得分:0 
什么我建的数据里,左连接与 右连接 内连接的查询结果确实都不一样?要如何修改呢?
2012-11-26 10:47
半杯清茶
Rank: 4
等 级:业余侠客
威 望:6
帖 子:39
专家分:297
注 册:2012-11-13
得分:0 
建议你先看一下什么是左连接,什么是右连接,什么是内连接 等等。。。
2012-11-26 11:42
cnfarer
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:179
帖 子:3330
专家分:21157
注 册:2010-1-19
得分:0 
回复 4楼 yiyaozjk
绝大数情况下,就应该是不一样的!!!

★★★★★为人民服务★★★★★
2012-11-27 07:11
yiyaozjk
Rank: 2
等 级:论坛游民
帖 子:231
专家分:30
注 册:2010-3-10
得分:0 
我也是这样认为的,为什么用友ERP数据库左连接与右连接结果就会一样呢???不懂的就是在这里
2012-12-03 20:00



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-388356-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.177087 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved