各路英雄帮帮忙。。。偶好头疼。。。:(
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表时看到的)
真不知道是在哪个环节出了问题,请各位哥哥、姐姐、叔叔、阿姨、爷爷、奶奶。。。。英雄们在这里指点我一下,多谢了!!!!