私はこのサイトの他の投稿のいくつかを調べましたが、私が探しているものが正確にわからないので、ここに行きます。
私は2つのテーブルを持っているとしましょう
juser
-----------------------------
userID firstName lastName
-----------------------------
1 billy bob
2 jezze belle
3 bobbie sue
と:
juserrel
---------------------------------------------
id userID relUserID state
---------------------------------------------
1 1 2 approved
2 2 1 retired
3 2 1 approved
4 3 2 approved
私がやろうとしているのは、juserテーブルの各ユーザーに関する各ユーザー情報を表示する結果セットを取得し、特定のユーザーが別のユーザーに対して持つ「アクティブな」接続の数を示す接続と呼ばれる列を結果セットに追加することです。
上記の表に基づいて私が期待する結果は次のとおりです。
resultSet
-----------------------------------------------
userID firstName lastName connections
-----------------------------------------------
1 billy bob 2
2 jezze belle 3
3 bobbie sue 1
私が試したクエリは次のとおりです
select userID, firstName, lastName , coalesce(x.cnt,0) as connections
from juser
left outer join (select count(*) cnt from juserrel where juserrel.userID =
userID or juserrel.relatedUserID = userID and juserrel.state = 'approved')
x on userID = userID
私が得る結果セットは次のようになります:
resultSet
-----------------------------------------------
userID firstName lastName connections
-----------------------------------------------
1 billy bob 4
2 jezze belle 4
3 bobbie sue 4
助けてください ;)