我需要一些幫助,我正在處理SQL查詢。這是我正在使用的數據的簡化版本。我有3個表:複雜的SQL服務器查詢
聯繫:
- ContactID
- ContactName
提交:
- SubmissionID
- ContactID
- SubmissionTypeID
SubmissionTypes:
- SubmissionTypeID
- SubmissionType
我需要返回所有聯繫人(加入Submissions
,ContactID
),其中SubmissionTypeIDs
與SubmissionTypeIDs
列表匹配。棘手的部分是,我只想要結果,其中聯繫人的提交記錄SubmissionTypeID
匹配列表中的每個值。所以,舉例來說,如果我有這樣的數據:
Contacts
----------------
1 | Jim Johnson
2 | Sally Anderson
SubmissionTypes
----------------------
1 | Contact Form
2 | Request Form
3 | Generic Form
Submissions
----------------------
1 | 1 | 1
2 | 1 | 2
3 | 2 | 1
如果我SubmissionTypeID
值是1和2,我想爲下面的結果:
Jim Johnson | Contact Form
Jim Johnson | Request Form
我不想看到莎莉安德森,因爲她沒有提交這兩個值的記錄。
我猜測有幾種方法可以做到這一點。我很高興看到你的想法。
謝謝!
取決於其它約束,'具有COUNT(*)= 2'可能需要是'具有計數(不同submissiontypeid)= 2'。不過,對'intersect'+1。 – Laurence 2014-08-29 21:56:21
@Laurence同意,通常我會默認沒有明顯的,但我只是編輯它,因爲聯繫人可能有不止一次提交相同類型的提交。 – 2014-08-29 22:02:29