--试试这个:--1.产品Type = 1, 产品值 = 1 AND 产品Type = 2, 产品值 = 6
select a.* from 媒体库 a
join 媒体类型信息库 b on a.产品ID=b.产品ID and a.仓库ID=b.仓库ID
join 媒体类型信息库 c on a.产品ID=c.产品ID and a.仓库ID=c.仓库ID
where b.产品Type=1 and b.产品值=1
and c.产品Type=2 and c.产品值=6--2.产品Type = 1, 产品值 = 1 AND 产品Type = 2, 产品值 = 8
select a.* from 媒体库 a
join 媒体类型信息库 b on a.产品ID=b.产品ID and a.仓库ID=b.仓库ID
join 媒体类型信息库 c on a.产品ID=c.产品ID and a.仓库ID=c.仓库ID
where b.产品Type=1 and b.产品值=1
and c.产品Type=2 and c.产品值=8
select a.* from 媒体库 a
join 媒体类型信息库 b on a.产品ID=b.产品ID and a.仓库ID=b.仓库ID
join 媒体类型信息库 c on a.产品ID=c.产品ID and a.仓库ID=c.仓库ID
where b.产品Type=1 and b.产品值=1
and c.产品Type=2 and c.产品值=6--2.产品Type = 1, 产品值 = 1 AND 产品Type = 2, 产品值 = 8
select a.* from 媒体库 a
join 媒体类型信息库 b on a.产品ID=b.产品ID and a.仓库ID=b.仓库ID
join 媒体类型信息库 c on a.产品ID=c.产品ID and a.仓库ID=c.仓库ID
where b.产品Type=1 and b.产品值=1
and c.产品Type=2 and c.产品值=8
解决方案 »
- 如何还原master数据库
- pivot-bit类型不能使用sum等聚集函数,应该怎么办?
- NT AUTHORITY\NETWORK SERVICE默认的密码是什么
- 咨询一个数据库中动态将更新本机IP地址的解决办法
- 召集方案_关于数据库问题的
- SQL Server 做restore居然找不到备份的文件
- 这个查询语句的问题!
- 请问DTS为何不能设置定时执行呢?
- 触发器一问
- 如何改变SQL SERVER的日期默认格式???
- Execute Procedure i,count+1
- 建立了一个数据库维护计划, 只是用于数据库"mydata"的备份, 每天12点都会自动做备份, 但是因为关了机两天, 它就不会再备份了, 我看过作业
不错噢,但是如果条件多了(type1~n)都要的话,就要join n次表,这样在100万记录的情况下,可能也有性能问题吧?
当type有6个时,
产品Type = 1, 产品值 = 1
AND 产品Type = 2, 产品值 = 6
AND 产品Type = 3, 产品值 = 24
AND 产品Type = 4, 产品值 = 78
AND 产品Type = 5, 产品值 = 102
AND 产品Type = 6, 产品值 = 305邹老师的语句需要写成这样
select a.* from 媒体库 m
join 媒体类型信息库 a on m.产品ID=a.产品ID and m.仓库ID=a.仓库ID
join 媒体类型信息库 b on m.产品ID=b.产品ID and m.仓库ID=b.仓库ID
join 媒体类型信息库 c on m.产品ID=c.产品ID and m.仓库ID=c.仓库ID
join 媒体类型信息库 d on m.产品ID=d.产品ID and m.仓库ID=d.仓库ID
join 媒体类型信息库 e on m.产品ID=e.产品ID and m.仓库ID=e.仓库ID
join 媒体类型信息库 f on m.产品ID=f.产品ID and m.仓库ID=f.仓库ID
where
a.产品Type = 1, 产品值 = 1
AND b.产品Type = 2, 产品值 = 6
AND c.产品Type = 3, 产品值 = 24
AND d.产品Type = 4, 产品值 = 78
AND e.产品Type = 5, 产品值 = 102
AND f.产品Type = 6, 产品值 = 305我现有的方法需要这样写
select 媒体库.* from 媒体库
join (
select [仓库ID] , [产品ID] from (
select [仓库ID] , [产品ID]
from [媒体类型信息库]
where [产品值]=1 or [产品值]=6 or 产品值 = 24 or 产品值 = 78 or 产品值 = 102 or 产品值 = 305
group by [仓库ID], [产品ID], [产品Type]
) as a1
group by a1.[仓库ID] , a1.[产品ID]
having count(*) = 6
) as a2 on a2.[仓库ID] = [媒体库].[仓库ID] and a2.[产品ID] = [媒体库].[产品ID]表[媒体类型信息库]需要遍历一次,结果还需要group by 和having
邹老师的可能就要join 6次表[媒体类型信息库],并在其中搜索遍历。效率可能不是很好,但却清晰很多。
希望可以有更好的语句,请各位继续指教。谢谢