SQL多表
|
我有2组2个相应的表(共4个表)。两组仅对应一列。我希望查询在两个联接表中的该列中进行搜索,并能够返回所选列中的值,即使该列在另一表中不存在也是如此。
目前,我的查询如下:
select z
FROM A1
INNER JOIN A2
ON A1.x=A2.x
WHERE A1.x= \'25\'
UNION
select z
FROM B1
INNER JOIN B2
ON B1.x=B2.x
WHERE B1.x= \'25\'
只要我要查找(连接的)表A和B共有的一列,UNION就可以工作。我希望能够从仅存在于A或B中的列中获取值,而不必同时存在于两者中。
提前致谢。
编辑:
基本上,我希望在单独的表上进行两个完全独立的查询,但是在一个查询中,只有一个选择。
例:
Table A1
x | y
------
1 | a
2 | b
Table A2
x | z
------
1 | c
2 | d
Table B1
x | v
------
3 | e
4 | f
Table B2
x | w
------
3 | g
4 | h
因此,我想查找具有x的指定值的列变量(例如v,w,y或z)。例如选择w,其中x = 4应该给我h;选择z,其中x = 2应该给我d。
没有找到相关结果
已邀请:
5 个回复
肺鬼耙扮群
根据@Adrian的评论,您当然可以使用
作为常数。否则,您需要选择用于该列的数据类型的常量值。
使用问题中提供的样本数据:
结果:
用2代替4 结果:
渐首洽陈染
烷刨画颠离
时,请确保所有查询返回具有相同类型的相同列数的结果集。如果要在第一个查询没有的并集中从第二个查询返回一个列,则可以修改第一个查询以使该列具有NULL值。
骂狮淋唐便
对? 如果是这样,您的问题可能只是
和
是不同的类型。所以,做类似的事情
和
应该管用!
骨乏唯瓜