如何更改我的下面的Pgsql查询

时间:2010-12-17 05:43:20

标签: postgresql

我想通过从applet端表传递一些值来执行以下查询。

我的桌子是

style_no       | version_no | style_id
---------------------+------------+----
 Menshirt      |     1      |      861
 Menshirt      |     2      |      870
 Tops          |     1      |      893
 Childwear     |     1      |      856
 Childwear     |     2      |      978

如果用户选择MenShirt版本1,Tops版本1,ChildWear版本2详细信息,那么我的StylenoStr参数=(MenShirt,Tops,Childwear)和VernoStr参数=(1,1,2)。我的问题是下面的查询用版本2的MenShirt细节检索数据,这里不需要。如何编写查询以仅获取所选数据的结果?我正在使用Pgsql。

实际查询:

select style_id, style_no, version_no 
from style 
where style_no in (" + StylenoStr + ") 
  and version_no in (" + VernoStr + ")

执行查询:

select style_id, style_no, version_no 
from style 
where style_no in ('Menshirt', 'Tops', 'Childwear') 
  and version_no in ('1', '1', '2');

结果我得到了:

style_id | style_no        | version_no
---------+-----------------+------------
     861 | Menshirt        |     1
     870 | Menshirt        |     2
     893 | Tops            |     1
     978 | Childwear       |     2

我需要的结果是:

 style_id | style_no       | version_no
----------+----------------+------------
      861 | Menshirt       |     1
      893 | Tops           |     1
      978 | Childwear      |     2

非常感谢。

1 个答案:

答案 0 :(得分:2)

select style_id, style_no, version_no
from style
where (style_no, version_no) in (('Menshirt', '1'),
                                 ('Tops', '1'),
                                 ('Childwear', '2'));