2017-03-28 28 views
0

私は既存の.netシステムで作業しています.2人のユーザー間で「オファー」が行われたSQLテーブルがあります。 「オファー」は、usertype1からusertype2への2方向(giggidy)へ、またはその逆へと移行します。それを「シンプル」にするために、正しいユーザーがオファーを「受け入れる」ために、オファーがどちらの方法で行われているかを定義する「オファータイプ」フィールドがあります。クエリを実行するのに十分なだけのシンプルなので、単一のオファーでデータを取得する場合は、クエリを非常に簡単に実行できます。ここに私の問題があります:複数の条件付き条件を含むSELECT文

私はuser1のすべてのオファーのリストを表示するビューを構築しようとしています。このビューでは、user1は「offerloginuser」で、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 

ある「offertype2」のすべてのオファーは、私がのをofferid見ることができるようにする必要があり、「offertype1」のすべてのオファーを表示する必要があります:1 ; 2; 3; 4ではなく、user1が関与していないので5ではありません。最初の一見では、それは十分にシンプルに見えます、あなたはユーザーIDを持っています、つまり、システムのデザイナーはusertypeに基づいてユーザーIDのための別のテーブルを使用するように選択したので、私は同じIDを持つ2人のユーザーを持つかもしれません。

私は2つのSELECT文があります:それはそれらを結合し、すべての結果を表示することが可能であるか、私がしなければならないん、私は必要なものを私に与えてそれぞれが個別に実行

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

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

を参加?これらの結果をDevExpressグリッドにバインドして、ログインしたユーザーに表示します。

+0

'UNION ALL'を助けるかもしれません。 – HoneyBadger

答えて

4

これは役に立ちますか?

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

これを試してください: -

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

Anupに感謝しますが、あるタイプのオファーについてはofferrecipientid、別のタイプの場合にはofferloginuseridを忘れています。 @etsaは質問に答えました、私はそれを受け入れることができるように待っています。 – Daniel

関連する問題