想要实现的功能如下:
问题描述:
想要实现一个项目分配专家,然后专家登陆评分的功能。
管理员分配专家后,在数据库[item]表中的expert1,expert2,expert3字段中分别对应着[expert]表中的ID字段,
在[score]表中,item_id字段对应[item]的ID字段,expert_id字段对应[expert]表中的ID字段,
在专家对项目评分之前,[score]表中没有要评分的项目的记录,只有当专家评分提交后,在[score]表中才会添加相应记录。
现在想做两个页面(如上面的第二、三张图),第一个页面是想要查找出分配给该专家的待评分的项目,第二个页面是查找出该专家已经评完分的项目,试了半天也没成功。
查出来的数据总是丢数据....明明没有评过分的项目,却显示不出来!
有没有更好的写法,更方便的写法,更准确的写法!
求改代码:
<%
set rs=server.createobject("adodb.recordset")
sql="select * from (select [item].*,[expert].name as expName from [item],[expert] where [item].expert1=[expert].id or [item].expert2=[expert].id or [item].expert3=[expert].id and [expert].name='"&Session("name")&"' and [item].id not in(select [score].item_id from [score]) and [expert].id not in(select [score].expert_id from [score])) NTable where expName='"&Session("name")&"'"
rs.open sql,conn,1,1
%>
4 个解决方案
#1
查出来的数据总是丢数据....明明没有评过分的项目,却显示不出来!
有没有更好的写法,更方便的写法,更准确的写法!
#2
搞那么复杂干什么呢?既然是专家登陆后看的,那先在登陆信息里记录专家ID。
然后SQL里用Item表左连接Score表,查询条件是Item表的expert1,expert2,expert3等于专家ID,Scroe表为空的,就是未评分
然后SQL里用Item表左连接Score表,查询条件是Item表的expert1,expert2,expert3等于专家ID,Scroe表为空的,就是未评分
#3
具体应该怎么写啊
#4
思路给你了,具体怎么做要自己去做。
不知道什么是左连接,去查资料,关键词:left join
不知道什么是左连接,去查资料,关键词:left join
#1
查出来的数据总是丢数据....明明没有评过分的项目,却显示不出来!
有没有更好的写法,更方便的写法,更准确的写法!
#2
搞那么复杂干什么呢?既然是专家登陆后看的,那先在登陆信息里记录专家ID。
然后SQL里用Item表左连接Score表,查询条件是Item表的expert1,expert2,expert3等于专家ID,Scroe表为空的,就是未评分
然后SQL里用Item表左连接Score表,查询条件是Item表的expert1,expert2,expert3等于专家ID,Scroe表为空的,就是未评分
#3
具体应该怎么写啊
#4
思路给你了,具体怎么做要自己去做。
不知道什么是左连接,去查资料,关键词:left join
不知道什么是左连接,去查资料,关键词:left join