很奇怪的联合查询:在线等待,很着急。。。。

fwwxxjingling 2003-04-21 01:52:00
selecct b1.* from b1,b2 where b1.filed1=b2.filed2;
例如表1记录
'aa' '1' '4'
表2的记录
‘aa', 'dfs','sdfsa'
‘aa', 'dgs','gga'
‘aa', 'gs','sdfsa'

想同的关联字段值‘aa'
结果应该只有一条纪录
为什么会出现三条???百思不得其解!
如何实现只有一条??不要用in (。。。) 因为我还要分组 sum等。。
...全文
31 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
yiyu 2003-04-28
  • 打赏
  • 举报
回复
这样写就是3条。。真不知道一条是怎么回事!!
说说你一条是哪个结果?
runranrun 2003-04-23
  • 打赏
  • 举报
回复
当然是3条啊,笛卡儿叉积嘛
你还是说说你为什么要实现只有一条吧?
th820901 2003-04-22
  • 打赏
  • 举报
回复
up
dmm 2003-04-22
  • 打赏
  • 举报
回复
老大
你用的是全联接呢,
当然只有一条记录了,
要以B2为主表,
进行外联接才会有三条呢,,
还去看看关系运算吧,,
这才行
where b1.filed1=*b2.filed1
sailerbai 2003-04-21
  • 打赏
  • 举报
回复
应该是多条,除非在where后面再增加条件或者在select后面增加unique(distinct)
caiyunxia 2003-04-21
  • 打赏
  • 举报
回复
selecct * from b1 where exists(SELECT 1 FROM B2 WHERE b1.filed1=b2.filed2
)

selecct * from b1 where filed1 IN(SELECT filed2 FROM B2)
caiyunxia 2003-04-21
  • 打赏
  • 举报
回复
selecct distinct b1.* from b1,b2 where b1.filed1=b2.filed2
因为B1与B2是一对多
fwwxxjingling 2003-04-21
  • 打赏
  • 举报
回复
你们可以实现一下,会出呼意料的
huangxinru 2003-04-21
  • 打赏
  • 举报
回复
你希望得到的是什么结果?
New_bug 2003-04-21
  • 打赏
  • 举报
回复
原因:
看看数据:
selecct * from b1,b2 where b1.filed1=b2.filed2
New_bug 2003-04-21
  • 打赏
  • 举报
回复
selecct b1.* from b1,b2 where b1.filed1=b2.filed2 GROUP BY b1.filed1,b1.filed2,b1.filed3
New_bug 2003-04-21
  • 打赏
  • 举报
回复
selecct b1.* from b1,b2 where b1.filed1=b2.filed2; GROUP BY b1.filed1,b1.filed2,b1.filed3
fwwxxjingling 2003-04-21
  • 打赏
  • 举报
回复
我觉的结果应该是一条记录,
huangxinru 2003-04-21
  • 打赏
  • 举报
回复
这是对的呀!两个表通过第一列关联

752

社区成员

发帖
与我相关
我的任务
社区描述
PowerBuilder 数据库相关
社区管理员
  • 数据库相关社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧