作者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
推 pcstar:不對耶...這樣只會從現有的rating裡篩出資料 04/11 01:01
推 pcstar:並不會產生原本沒有的資料 如A 3, B 2 04/11 01:07