选择具有多个条件条件的语句

时间:2017-03-28 09:52:36

标签: sql sql-server

我正在研究现有的.net系统,我有一个SQL表,两个用户之间都有“优惠”。 “offer”从usertype1到usertype2是双向的(giggidy),反之亦然。为了使其“简单”,有一个“offertype”字段定义了要约的方式,以便正确的用户“接受”要约。当您想要查询它时,如果您想要获得单个商品上的数据,则可以非常轻松地执行查询。这是我的问题:

我正在尝试构建一个显示user1所有商品列表的视图。在此视图中,它应显示“offertype1”的所有商品,其中user1是“offerloginuser”,所有商品名为“offertype2”,其中user1是“offerrecipientuser”

offerid offerloginuserid    offerrecipientuserid    offertype
1       1                   2                       1
2       2                   1                       2
3       1                   3                       1
4       3                   1                       2
5       3                   4                       2

我需要能够看到offerid:1; 2; 3; 4但不是5,因为user1不参与。初看起来它看起来很简单,你有用户ID,事实是,系统的设计者选择使用基于usertype的用户ID的单独表,所以我可能有两个具有相同ID的用户。

我有两个选择语句:

select * from tbl_offers where offertype = 1 and offerloginuserid = 1

select * from tbl_offers where offertype = 2 and offerrecipientid = 1

每个单独执行给我我需要的东西,是否有可能加入他们并显示所有结果或我是否必须加入?我将这些结果绑定到DevExpress网格,以便在登录时显示给用户。

2 个答案:

答案 0 :(得分:4)

这可以帮到你?

select * from tbl_offers where (offertype = 1 and offerloginuserid = 1) OR (offertype = 2 and offerrecipientid = 1)

答案 1 :(得分:1)

请试试这个: -

select * from tbl_offers  
where offertype in (1,2) and offerrecipientid = 1