ここで私は2つのテーブルcommittee_collegesと大学を持っています。テーブルの 構造は、このSQL複数の結合クエリ
committee_colleges
committeeCollegeId collegeId committeeMemberId
1 2 1
2 2 2
3 3 2
のようなものです私は1つの大学が複数の委員会Members.Howを持つことができますcommitteeMember table.AndからcommitteeMemberIdを格納しています私はに割り当てられているだけの大学を表示するクエリをWITEすることができます特定委員会メンバー。 たとえば、id = 2のcommitteeMemberがログインしている場合、id = 2,3で大学を表示したいとします。
私はこのように、collegeId typeName
1 AICTE
2 NCTE
3 NTCS
これは委員会のメンバー表である
committeeMemberId name
1 xyz
2 abc
今、私はこのような何かを書いていましたが、私はどのように知らないので、私はその間違ったを知っている大学のテーブルで
私は大学の詳細を表示しているので、カレッジのテーブルから取り出してください。
SELECT cc.committeeCollegeId as committeeCollegeId,
c.collegeId as collegeId,
cc.committeeMemberId as committeeMemberId
FROM committee_college as cc
left outer join College as c
on cc.collegeId = c.collegeId
where cc.committeeMemberId=:committeeMemberId
order by cc.committeeCollegeId asc
特定のcommitteeMemberへの割り当てに基づいて大学を表示する方法を教えてもらえますか? EDIT
SELECT DISTINCT C.typeName --<<== put here all the columns that you want in output
FROM committee_colleges CC
INNER JOIN college C
ON C.collegeId = CC.collegeId
WHERE CC.committeeMemberId = 2 --<<== your input parameter
:は
DISTINCT
がそれを願って追加あなたは、あなたがINNER JOIN
代わりLEFT JOIN
閉じる必要があるし、同じ
DECLARE @committeeMemberId INT = 2 -- Id of Committee member
;WITH CTE_MemberCommittee AS
(
SELECT CollegeId
FROM committee_colleges
WHERE committeeMemberId = @committeeMemberId
)
SELECT collegeId, typeName
FROM college
WHERE collegeId IN (SELECT CollegeId FROM CTE_MemberCommittee)
期待された結果 – Sami
memberId = 2を使用してログインすると、collegeId = 2,3の大学を表示する必要があります。CommitteeMemberIdに基づいて割り当てられた各カレッジを表示する必要があります –
大学について言及しているとおり、しかし、カレッジドを除いて、あなたはカレッジのテーブルから何も選択していないし、委員会のテーブルからも取得できます。列名で期待される出力を指定すると、あなたの質問に答える人にとっては役に立ちます。 –