我正在研究现有的.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网格,以便在登录时显示给用户。
答案 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