各路英雄帮帮忙。。。偶好头疼。。。:(

swind0826 2003-08-14 01:31:25
VC操作Access数据库的问题。
有两个表
表A
A.Aid(自动编号) A.Name
表B
C.Cid(C表的主键,数字,有重复) A.Aid(数字,对应A表,有重复) Order(数字,有重复)
在表B中,相同Cid的记录,Aid是不重复的,Order也不重复
现在,想查询表B中指定Cid的记录的A.Name。(即查询对应指定Cid记录中的A.Aid的A.Name)
我的语句是:
方法1.
strSQL.Format("Select \
A.Name \
From [A]
Where A.Aid In \
(Select A.Aid From [B] Where Cid = XXX)");
m_pDaoRecordset->Open(dbDynaset,strSQL);
方法2.
strSQL.Format("Select \
A.Name \
From [A]Inner Join B On A.Aid = B.Aid
Where Cid = XXX \
Order by B.Order");
m_pDaoRecordset->Open(dbDynaset,strSQL);

现在遇到问题了,在B表中,Cid值为XXX的记录,最少有3条,且Aid都与A表中的Aid对应。在使用这两种方法后,查询效果是一样的,结果集中只有一条数据(当给出的XXX为B表中第一行记录的Cid时),或者是为空集(给出的XXX不与前一个条件不同时)。但我期望的结果集,应该是所有与"B.Cid=XXX"的记录中Aid对应的A.Name。(注:我所说的“在B表中的第一行”,是用Access直接打开B表时看到的)

真不知道是在哪个环节出了问题,请各位哥哥、姐姐、叔叔、阿姨、爷爷、奶奶。。。。英雄们在这里指点我一下,多谢了!!!!
...全文
44 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
swind0826 2003-08-14
  • 打赏
  • 举报
回复
我单独用
Select Name Form [A]

Select B.Aid From [B] Where Cid = XXX Order by B.Order

这两条语句都没有问题,结果集都是正常的。
swind0826 2003-08-14
  • 打赏
  • 举报
回复
to amtyuranus((看看)) :
呵呵,问题解决了,开心。。。。
多谢你的支持:)

接分!
amtyuranus 2003-08-14
  • 打赏
  • 举报
回复
怎么可能主键还有重复的?
你还有别的主键?

你上面语句没问题,可能是别的地方错了
swind0826 2003-08-14
  • 打赏
  • 举报
回复
谢谢都来看一下,up有分。

7,714

社区成员

发帖
与我相关
我的任务
社区描述
Microsoft Office Access是由微软发布的关系数据库管理系统。它结合了 MicrosoftJet Database Engine 和 图形用户界面两项特点。
社区管理员
  • Access
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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