编辑:我最初的描述不是很清楚,所以让我重新开始:
我有一个表x,其中包含列a,b和c,我想查询表y中的内容,其中ya = xa和表x中有一行,其中xb =(arg1)AND xc =(arg2)并且另一行存在于x中,其中xb =(arg3)和xc =(arg4)
因此传入值(3,4,6,12)会在此测试用例中返回a1。希望能够解决问题。
|-------|----------|----------|
| a | b | c |
|-------|----------|----------|
| 1 | 3 | 4 |
| 1 | 6 | 12 |
| 2 | 6 | 33 |
答案 0 :(得分:3)
这听起来像父母之间的基本1对多(1:M)联接 - >子表关系。如果是这样,基本的INNER JOIN将返回父表和子表之间的所有匹配行。父列(如果包含在SELECT子句中)将对子表中的每个匹配行重复。
父级和子级之间的LEFT OUTER JOIN将返回父级的所有行以及子级的匹配行。如果子表中缺少ID值,则通常返回NULL值来代替任何数据。
希望这有帮助。
答案 1 :(得分:1)
Select *
from y
where exists( select *
from x
where y.a = x.a
and x.b = 3
and x.c = 4 )
and exists( select *
from x
where y.a = x.a
and x.b = 6
and x.c = 12 )
答案 2 :(得分:0)
左加入......?
你问的问题看起来很简单 - 你能提供一些细节(表格模式等),以便我们更有帮助吗?