如何解决这个问题??

dengyz 2003-10-19 11:45:10
现有三表:
表一,address

classuuid truename username
123 Deng Adi
123 Wang Jame

表二 leavemsg
classuuid author
123 Adi
123 Jame
123 Hank

现在还另有一表:classinfo

classuuid default
123 Yes
234 NO
345 NO


现在查询结果要如下所示:

classuuid truename
123 Deng
123 Wang
123 Hank

查询语句如下:
SELECT leavemsg.classuuid, iif(isnull(address.truename), leavemsg.author,address.truename) as truename,leavemsg.datetime,leavemsg.message
FROM (address right JOIN leavemsg ON address.classuuid = leavemsg.classuuid AND address.username=leavemsg.author) inner join classinfo on classinfo.classuuid=leavemsg.classuuid
Where Classinfo.default=Yes;

现想将查询结果中truename为Hank的记录找出来,请问要如何写?
SELECT leavemsg.classuuid, iif(isnull(address.truename), leavemsg.author,address.truename) as truename,leavemsg.datetime,leavemsg.message
FROM (address right JOIN leavemsg ON address.classuuid = leavemsg.classuuid AND address.username=leavemsg.author) inner join classinfo on classinfo.classuuid=leavemsg.classuuid
WHERE [leaveMsg].[classuuid]='123' and truename='Hank'
ORDER BY LeaveMsg.datetime DESC;
像这样的语句找不出Hank记录,只能找出truename为Deng或Wang的记录。
...全文
24 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
cheny1234 2003-10-20
  • 打赏
  • 举报
回复
未经测试:
SELECT leavemsg.classuuid, iif(isnull(address.truename), leavemsg.author,address.truename) as newtruename,leavemsg.datetime,leavemsg.message
FROM address right JOIN leavemsg ON address.classuuid = leavemsg.classuuid AND address.username=leavemsg.author
WHERE [leaveMsg].[classuuid]='123' and newtruename='Hank'
ORDER BY LeaveMsg.datetime DESC;
dengyz 2003-10-20
  • 打赏
  • 举报
回复
现想要能当给出Hank时自动找出Hank记录,给Deng时自动找出Deng记录?

7,712

社区成员

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

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