这句SQL语句怎么写:一个dbgrid关联2个表的问题

pig_pig2005 2005-11-08 04:01:11
网上有很多相关的帖子,但是都只是2个表中只有一个字段重叠的
例如:select a.a1,a.a2,a.a3,b.b1,b.b2,b.b3 from a,b where a.a1=b.b1

我现在是3个字段重叠: a.a1=b.b1 a.a2=b.b2 a.a3=b.b3 //用and/or连接???
并且要求同时满足 a.ID='5' b.ID='5'

头都大了。晕
...全文
165 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
lovendII 2005-11-08
  • 打赏
  • 举报
回复
看明白了。
a.field1,a.field2,a.field3
b.field2,b.field2,b.field3
这样显示是吧?

用union
select a.field1,a.field2,a.field3 from table1 a where...(where 后面的条件你自己去写拉)

union

select b.field1,b.field2,b.field3 from table2 b where...(where 后面的条件你自己去写拉)


surdon 2005-11-08
  • 打赏
  • 举报
回复
你不会是只要

select a.a1,a.a2,a.a3, from a,b where a.a1=b.b1
and a.a1=b.b1 and a.a2=b.b2 and a.a3=b.b3 and a.ID='5' and b.ID='5'
GROUP BY a.a1,a.a2,a.a3

这样吧~~
pig_pig2005 2005-11-08
  • 打赏
  • 举报
回复
可能是我没说清楚,我的意思是让b的3个字段也显示在dbgrid的0,1,2字段中,即显示完a表的查询结果后,在后面接着显示b表的查询结果,而不是添加3个字段显示b表的查询结果。




>>>严重怀疑你是来玩弄我们的 。呵呵,不跟你扯下去了,会有被当候耍的感觉

真心求教,岂敢耍人。非常谢谢各位的回答。


PS: 错别字:候——>猴 呵呵
lovendII 2005-11-08
  • 打赏
  • 举报
回复
我是要a,b两个表的数据都显示
------

严重怀疑你是来玩弄我们的 。呵呵,不跟你扯下去了,会有被当候耍的感觉
lovendII 2005-11-08
  • 打赏
  • 举报
回复
我上面写的不就是a,b两个表的数据都显示吗
a.field1, a.field2, a.field3 是a 表的字段
b.field1, b.field2, b.field3 是b表的字段

如果你嫌少了可以全部写完整啊,把a,b表的字段全部加上都可以
pig_pig2005 2005-11-08
  • 打赏
  • 举报
回复
我是要a,b两个表的数据都显示
lovendII 2005-11-08
  • 打赏
  • 举报
回复
那就看你让他们显示的顺序了
比如
你select a.field1, a.field2, a.field3, b.field1, b.field2, b.field3 ....
就先显示a表的三个子段,后面跟着b表的三个字段

如果你想让b表的数据显示在前面,就
这样
select b.field1, b.field2, b.field3 ,a.field1, a.field2, a.field3 .....
pig_pig2005 2005-11-08
  • 打赏
  • 举报
回复
是没关系,但是本应该显示在0,1,2三个字段的b表的数据却显示在3,4,5字段中了
lovendII 2005-11-08
  • 打赏
  • 举报
回复
dbgrid中显示几个字段根where 中的条件没关系,where 后面的语句只是用来筛选的。你可以只让dbgrid中只显示一个字段,可以显示两个子段,或者三个子段,也可以全部显示.
pig_pig2005 2005-11-08
  • 打赏
  • 举报
回复
而且更恶心的是每条查询记录都重复N次
pig_pig2005 2005-11-08
  • 打赏
  • 举报
回复
用and 不行,运行结果bdgrid中有6个字段,按要求只能有3个
pig_pig2005 2005-11-08
  • 打赏
  • 举报
回复
用and 不行,运行结果bdgrid中有6个字段,按要求只能有3个
lovendII 2005-11-08
  • 打赏
  • 举报
回复
来晚了,必须都满足三个条件相等,当然用and了
surdon 2005-11-08
  • 打赏
  • 举报
回复
用SQL 的查询器自动生成吧~~ACCESS 里好像也有~~
jinjazz 2005-11-08
  • 打赏
  • 举报
回复
select a.a1,a.a2,a.a3,b.b1,b.b2,b.b3 from a,b where a.a1=b.b1
and a.a1=b.b1 and a.a2=b.b2 and a.a3=b.b3 and a.ID='5' and b.ID='5'

2,498

社区成员

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

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