我想从具有一个相似列的两个表中获取数据。
Table A
x y z a b
1 48 36 d5 8d
2 78 36 2t 15
3 99 54 s5 14
4 48 73 58 11
Table B
x y z a b
1 48 95 d9 69
2 98 36 3c vv
3 93 39 df 1bb
4 48 73 58 11
我想从列
y,z,b
的表中获取y=48,z=73,a=58,b=11
值。我像这样使用
join query
,但是它不起作用。Select x,y,z,a,b from A join B in A.y=B.y=48 and A.z=B.z=73 and A.a=B.a=58 and A.b=B.b=11;
你能给我合适的解决方案吗
最佳答案
连接是通过ON
关键字定义的,而不使用IN
。您还将混合联接条件和过滤条件。 a=b=x
在SQL中不起作用。
您还需要完全限定选择列表中的列,否则您将得到一个错误,即列名不明确。
Select a.x, a.y, a.z, a.a, a.b
from A
join B on A.y=B.y
and A.z=B.z
and A.a=B.a
and A.b=B.b
where a.y = 48
and a.z = 73
and a.a = 58
and a.b = 11
您的评论“具有一个相似的列”似乎表明,实际上连接应该仅通过列
x
完成,而不是基于要过滤的所有列:因此,您实际上可能想要:
Select a.x, a.y, a.z, a.a, a.b
from A
join B on a.x = b.x -- only use `x` for the join condition
where a.y = 48
and a.z = 73
and a.a = 58
and a.b = 11