- Rongsen.Com.Cn 版权所有 2008-2010 京ICP备08007000号 京公海网安备11010802026356号 朝阳网安编号:110105199号
- 北京黑客防线网安工作室-黑客防线网安服务器维护基地为您提供专业的
服务器维护
,企业网站维护
,网站维护
服务 - (建议采用1024×768分辨率,以达到最佳视觉效果) Powered by 黑客防线网安 ©2009-2010 www.rongsen.com.cn
作者:黑客防线网安SQL维护基地 来源:黑客防线网安SQL维护基地 浏览次数:0 |
学数学的时候都知道有交集和差集的概念。
用SQL语句来表示交集和差集的时候会遇到很多小困难,比如条件有重复,编号有空等等。
我最近在帮同事处理一些歌曲列表是否有版权的时候就遇到过这些困难,现在把它们记录一下:
copyright_songs表是有版权的歌曲清单 local_songs表是在用的歌曲清单
生成歌曲名和歌手名都相同的交集用如下SQL:
select distinct t2.id,t1.name,t1.singer,t1.id as local_id,t1.company,
t2.company as copyright_company,t2.type
into same_1
from copyright_songs t2,local_songs t1
where (t1.name=t2.name and t1.singer=t2.singer)
如果歌曲名称里面带有括号,如:星语心愿(节奏版)需要去掉歌曲里面括号后再比较.
select * into local_songs_old from local_songs
update local_songs set name=left(name,charindex('(',name)-1)
where charindex('(',name)>0
drop table same_1
select distinct t2.id,t1.name,t1.singer,t1.id as local_id,t1.company,
t2.company as copyright_company,t2.type
into same_1
from copyright_songs t2,local_songs t1
where (t1.name=t2.name and t1.singer=t2.singer)
显示歌曲名和歌手名都相同歌曲清单(交集)
select * from same_1
显示歌曲名和歌手名都相同歌曲清单,用原来带括号的歌曲名
select distinct t1.id,t2.name,t1.singer,t1.local_id,t1.company,t1.num,t1.type
from same_1 t1,local_songs_old t2
where t1.t1_id=t2.id
找到没有版权对应的歌曲列表
显示编号是否有为空的记录
select * from local_songs where id is null
select * from same_1 where local_id is null
去掉编号为空的记录
delete from local_songs where id is null
delete from same_1 where local_id is null
生成本地歌曲表里面没有版权的歌曲清单(差集)
select * into no_local_songs from local_songs
where id not in (select local_id from same_1)
显示本地歌曲表里面没有版权的歌曲清单
select * from no_local_songs
没有版权的歌曲就要屏蔽起来,不能再使用原来免费的互联网音乐来赢利了。
我要申请本站:N点 | 黑客防线官网 | |
专业服务器维护及网站维护手工安全搭建环境,网站安全加固服务。黑客防线网安服务器维护基地招商进行中!QQ:29769479 |