【发布时间】:2013-07-17 13:15:18
【问题描述】:
我有一个这样的父表
ID | ParentTestID | TestID
----------------------------------------
1 | 10 | 15
2 | 10 | 25
3 | 10 | 35
第二张桌子
ID | TestID | TestName | LanguageID
-----------------------------------------
1 | 15 | Test1 | 8
2 | 15 | Test2 | 3
3 | 15 | Test3 | 1
4 | 25 | Test1 | 5
5 | 25 | Test2 | 3
6 | 25 | Test3 | 4
7 | 35 | Test1 | 3
8 | 35 | Test2 | 8
9 | 35 | Test3 | 9
当我只知道第一个表上的 ParentTestID 时,我的方案是从第二个表中找到公共语言 ID
这意味着如果我知道父 TestID 为 10,则结果将为 3,因为 10 以下的所有 testID 的共同语言 ID 为 3
此外,父 ID 下的 testID 数量是不可预测的。不会只有 3 个。
我正在寻找没有光标或此类复杂问题的查询。
【问题讨论】:
-
common languageID的意思是 ID 存在于同一ParentID的所有TestID中? -
您的结果只是一个计数,参数是@ParentTestID ?
-
@491243 LanguageID in 用于第二个表中的每个测试。测试名称会有所不同。例如:TestSpanish (LangID 8) , TestFrench(LangID 3), TestEnglish (LanguageID 1) 所以这些测试名称会有所不同所以我的要求是找到所有具有 Common LanguageID 为 3的测试>
-
@TimSchmelter No.. 它不会总是单行元素。如果testIDs有多个公共语言ID,它将是多行是的。唯一的参数是ParentTestID
标签: sql sql-server-2008 intersection