SQL查询:Subtable中的EXISTS
我有两个表tabData和tabDataDetail.
我想要在Parent-Table(tabDataDetail,FK是fiData)中只有行的父表(tabData)中的所有idData(PK): > fiActionCode = 11单独 任何其他组合无效.如何获得他们? 我没有成功尝试(慢,给我也只有fiActioncode 34的行): alt text http://www.bilder-hochladen.net/files/4709-l0.jpg 谢谢你的时间. 编辑:感谢所有的答案.现在我不幸没有足够的时间来检查哪一个是最好的或者是完美的.我把第一个工作作为答案. EDIT2:我认为标示的答案是真正最有效和最紧凑的解决方案. EDIT3:Codesleuth的答案很有趣,因为它只返回只有一个fiActionCode = 11的行.很难看到,因为它的唯一真正的20个tabDataDetail-rows ot的41524189总行有两个.无论如何,不??是100%我问过,或者我正在寻找什么. 解决方法Select ... From tabData As T1 Where Exists ( Select 1 From tabDataDetail As TDD1 Where TDD1.fiData = T1.idData And TDD1.fiactionCode = 11 ) And Not Exists ( Select 1 From tabDataDetail As TDD1 Where TDD1.fiData = T1.idData And TDD1.fiactionCode Not In(11,34) ) 为了扩展我的逻辑,第一个检查(修正)是确保存在具有fiActionCode = 11的行.第二个检查通过首先定义我们不想要的一组行来进行.我们不想要任何东西,而不是fiActionCode = 11或34.因为这是我们不想要的一组项,我们搜索该集合中不存在的任何东西. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |