我想从两个数据库的表中加入数据。一个用预定义值(itemId,itemName)归档,另一个用户填充(itemId,itemName,userId)。属性itemId和itemName是相同的,从第一个表我们选择所有数据,第二个我们通过userId选择数据并组合这两个结果。
应该区分连接的数据,因为id是自动增量并且可以是相同的(加倍)。我们想用这些数据填充下拉列表,例如数据源和字典(int是itemId,字符串是itemName)我们只能在dropDownList中有valueFiled和valueText,但这两个表的ID可能是相同的,而且我们不喜欢泡沫从表中知道是由id选择的项目。
有没有任何优雅的方法来联合这个,也许是我们在用户登录时总是将临时表连接到临时表中的这两个表等...
感谢您的回答
答案 0 :(得分:1)
我认为你正在寻找工会。使用文字值来标识来源。
select 'predefined' as source, itemid, itemname
from predefined_values_table
union all
select 'user', itemid, itemname
from user_supplied_values_table
where userid = ?;
如果只能容纳两列,则可以使用类似的内容。但是你必须撤消字符串连接以获取id号。
select 'p:' || itemid, itemname
from predefined_values_table
union all
select 'u:' || itemid, itemname
from user_supplied_values_table
where userid = ?;