假设我有以下表格
表A
id pk_id name value (Varchar)
1 1 name test name
2 1 city los angeles
表B
id pk_id name value (int)
1 1 age 33
2 1 amount 30
是否可以获得以下结果?
name test name
age 33
当我从tablea选择tablea。,tableb。,tableb,其中tablea.pk_id = 1,tableb.pk_id = 1,我得到一行包含所有列。
答案 0 :(得分:1)
你想要的是一个UNION
,但由于你有不同类型的字段,而且UNION
要求所有字段都应该是相同的类型,所以要特别注意。
因为你没有指定你的RDBM是什么,我将为oracle做。但基本的想法是,您只需要一个函数将您的数字列转换为varchar列:
select name, value from tablea where pk_id=1
UNION ALL
select name, TO_CHAR(value) from tableb where pk_id=1
它应该能满足您的需求。
答案 1 :(得分:1)
是
SELECT name, value FROM tablea WHERE id=<somevalue>
UNION ALL
SELECT name, CONVERT(varchar(10), value) FROM tableb WHERE pk_id=<somevalue>
您需要使用UNION
关键字,但您的列必须是相同的数据类型
答案 2 :(得分:-2)
你可以使用它..
Select name,age
from TableA,TableB
where TableA.id=TableB.id;