我想通过从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
非常感谢。
答案 0 :(得分:2)
select style_id, style_no, version_no
from style
where (style_no, version_no) in (('Menshirt', '1'),
('Tops', '1'),
('Childwear', '2'));