这个查询怎么写?
时间:2011-12-13
来源:互联网
SQL code
/* T_table1: 款号 颜色 尺码 001 红色 21 001 红色 22 001 红色 23 001 黄色 21 001 黄色 22 001 黄色 23 001 蓝色 21 001 蓝色 22 001 蓝色 23 002 红色 21 002 红色 22 002 红色 23 002 黄色 21 002 黄色 22 002 黄色 23 002 蓝色 21 002 蓝色 22 002 蓝色 23 003 红色 21 003 红色 22 003 红色 23 003 黄色 21 003 黄色 22 003 黄色 23 003 蓝色 21 003 蓝色 22 003 蓝色 23 ...一共有两百万条记录 T_table2:(以款号和颜色作为主键唯一的) 款号 颜色 001 红色 001 黄色 003 蓝色 目的:列出T_table2所对应的所有尺码 如何通过T_table1与T_table2 进行查询得出以下结果: (要注意查询速度呀,因为table1有两百万条记录) 款号 颜色 尺码 001 红色 21 001 红色 22 001 红色 23 001 黄色 21 001 黄色 22 001 黄色 23 003 蓝色 21 003 蓝色 22 003 蓝色 23 */ ----建立测试环境(MSSQL2000) if exists (select * from sysobjects where id = object_id(N'T_table1') and OBJECTPROPERTY(id, N'IsUserTable') = 1) drop table T_table1 GO if exists (select * from sysobjects where id = object_id(N'T_table2') and OBJECTPROPERTY(id, N'IsUserTable') = 1) drop table T_table2 GO CREATE TABLE [T_table1] ( [款号] [varchar] (50) COLLATE Chinese_PRC_CI_AS NULL , [颜色] [varchar] (50) COLLATE Chinese_PRC_CI_AS NULL , [尺码] [int] NULL ) ON [PRIMARY] GO CREATE TABLE [T_table2] ( [款号] [varchar] (50) COLLATE Chinese_PRC_CI_AS NOT NULL , [颜色] [varchar] (50) COLLATE Chinese_PRC_CI_AS NOT NULL , CONSTRAINT [PK_T_table2] PRIMARY KEY CLUSTERED ( [款号], [颜色] ) ON [PRIMARY] ) ON [PRIMARY] GO Insert T_table1 (款号,颜色,尺码) Values ( '001','红色',21) Insert T_table1 (款号,颜色,尺码) Values ( '001','红色',22) Insert T_table1 (款号,颜色,尺码) Values ( '001','红色',23) Insert T_table1 (款号,颜色,尺码) Values ( '001','蓝色',21) Insert T_table1 (款号,颜色,尺码) Values ( '001','蓝色',22) Insert T_table1 (款号,颜色,尺码) Values ( '001','蓝色',23) Insert T_table1 (款号,颜色,尺码) Values ( '002','红色',21) Insert T_table1 (款号,颜色,尺码) Values ( '002','红色',22) Insert T_table1 (款号,颜色,尺码) Values ( '002','红色',23) Insert T_table1 (款号,颜色,尺码) Values ( '002','黄色',21) Insert T_table1 (款号,颜色,尺码) Values ( '002','黄色',22) Insert T_table1 (款号,颜色,尺码) Values ( '002','黄色',23) Insert T_table1 (款号,颜色,尺码) Values ( '002','蓝色',21) Insert T_table1 (款号,颜色,尺码) Values ( '002','蓝色',22) Insert T_table1 (款号,颜色,尺码) Values ( '002','蓝色',23) Insert T_table1 (款号,颜色,尺码) Values ( '003','红色',21) Insert T_table1 (款号,颜色,尺码) Values ( '003','红色',22) Insert T_table1 (款号,颜色,尺码) Values ( '003','红色',23) Insert T_table1 (款号,颜色,尺码) Values ( '003','黄色',21) Insert T_table1 (款号,颜色,尺码) Values ( '003','黄色',22) Insert T_table1 (款号,颜色,尺码) Values ( '003','黄色',23) Insert T_table1 (款号,颜色,尺码) Values ( '003','蓝色',21) Insert T_table1 (款号,颜色,尺码) Values ( '003','蓝色',22) Insert T_table1 (款号,颜色,尺码) Values ( '003','蓝色',23) Insert T_table1 (款号,颜色,尺码) Values ( '001','黄色',21) Insert T_table1 (款号,颜色,尺码) Values ( '001','黄色',22) Insert T_table1 (款号,颜色,尺码) Values ( '001','黄色',23) go Insert T_table2 (款号,颜色) Values ( '001','红色') Insert T_table2 (款号,颜色) Values ( '001','黄色') Insert T_table2 (款号,颜色) Values ( '003','蓝色') go select * from T_table1 order by 款号 select * from T_table2
作者: SKY1006 发布时间: 2011-12-13
SQL code
select b.* from table2 a join table1 b on a.款号 = b.款号 and a.颜色 = b.颜色
作者: AcHerat 发布时间: 2011-12-13
SQL code
select b.* from T_table2 a inner join T_table1 b on a.款号=b.款号 and a.颜色=b.颜色 款号 颜色 尺码 -------- ----------- ----------- 001 红色 21 001 红色 22 001 红色 23 003 蓝色 21 003 蓝色 22 003 蓝色 23 001 黄色 21 001 黄色 22 001 黄色 23 (9 row(s) affected)
作者: ap0405140 发布时间: 2011-12-13
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28