作者gargamel (Nerding)
看板Database
标题Re: [SQL ] 如何select交叉筛选出使用者没有资料的 …
时间Fri Apr 11 00:32:40 2008
简单来说, 只要看rating这个table
select * from rating a
where not exists
(
select * from rating b
where b.item = a.item
and b.username <> a.username
)
我是凭想像写的...请测看看...0rz
※ 引述《pcstar (亮光)》之铭言:
: 我用的是MS SQL Server 2005
: 抱歉标题的问题可能不够清楚 @@
: 目前有下列两个资料表item和rating
: 想要从中筛选出使用者间没有被共同评分过的项目
: 该如何写select条件式呢
: item用来纪录被评分的项目
: rating用纪录使用者对项目的评分
: 并已建立一个检视表Corating 表示使用者间皆评分过的项目
: 三张表示意如下
: [Item]
: item itemname
: ==== ========
: 1 aaaa
: 2 bbbb
: 3 cccc
: 4 dddd
: [Rating]
: username item rate
: ======== ==== ====
: A 1 3
: A 2 4
: B 1 5
: B 3 5
: [Corating] View
: user1 user2 item
: ===== ===== ====
: A B 1
: B A 1
: 如何利用这两个资料表和一个检视表找出:
: 各个user没有评分过,但有共同评分过某些项目的其他使用者所已评分过的项目,
: 希望结果如下:
: username item
: ======== ====
: A 3
: B 2
: ps. item 4因为互相都没有评分过,所以没有在结果集当中
: 请各位高手帮忙 谢谢!
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 220.135.237.13
1F:推 pcstar:不对耶...这样只会从现有的rating里筛出资料 04/11 01:01
2F:推 pcstar:并不会产生原本没有的资料 如A 3, B 2 04/11 01:07