日期:2014-05-17  浏览次数:20528 次

求一个组合查询条件的查询语句
假如有2个表t1(商品表)和t2(商品所属的属性表),
t1字段和数据:
id   name
1    n1
2    n2
3    n3
.......

t2字段和数据:
id   type
1     1
1     2
1     3
2     1
2     2
3     1
4     3
.......

现在要查询出一些商品,既属于type1也属于type2,请问该怎么写查询语句呢?

------解决方案--------------------
SELECT  *
FROM    t1
WHERE   id IN ( SELECT  *
                FROM    ( SELECT    id
                          FROM      [t2]
                          WHERE     [type] = 1
                          UNION
                          SELECT    id
                          FROM      [t2]
                          WHERE     [type] = 2
                        ) a )

------解决方案--------------------
select * from t1 As a
Where Exists(select 1 from t2 As x
                 Where x.id=a.id 
                     And x.type=1
         )
    And Exists(select 1 from t2 As x
                 Where x.id=a.id 
                     And x.type=2
             )

------解决方案--------------------
除了2L跟6L的都行呵呵~

SELECT    id   FROM      [t2]  WHERE     [type] = 1
INTERSECT
SELECT    id   FROM      [t2]  WHERE     [type] = 2