使用来自两个数据库的自动增量 ID 连接来自两个表的数据
Posted
技术标签:
【中文标题】使用来自两个数据库的自动增量 ID 连接来自两个表的数据【英文标题】:Join data from two tables with autoincrement id from two databases 【发布时间】:2012-05-24 12:29:57 【问题描述】:我想连接来自两个数据库的表中的数据。一个用预定义的值(itemId、itemName)归档,另一个由用户填写(itemId、itemName、userId)。属性 itemId 和 itemName 相同,从第一个表我们选择所有数据,从第二个我们通过 userId 选择数据并将这两个结果结合起来。
应该区分加入的数据,因为 id 是自动递增的,并且可以相同(加倍)。我们想用这些数据填充下拉列表,例如使用数据源和字典(int 是 itemId,字符串是 itemName),我们只能在 dropDownList 中有 valueFiled 和 valueText,但是这两个表的 id 可能是相同的,我们不要t 知道从哪个表中选择的项目是 id。
有没有什么优雅的方式来连接这个,也许是我们总是在用户登录时将这两个表连接到临时表等中的临时表......
感谢您的回答
【问题讨论】:
您能否给出一组简单的示例数据,例如每个表中的 4 行,然后是您要从查询中查找的结果。最初听起来您想要一个非常简单的连接 - 但清晰会有所帮助。 除了 Nt 的问题,你问的是 mysql 还是 SQL Server(或两者)?以及哪个版本?这可能会影响答案。 每个表中或两个表中是否有重复项? table1(id, name -> 1 apple, 2banana, 3 orange) table2(id, name, username -> 1 mango, 2 pineapple, 3 strawberry) 在下拉列表中 我想设置数据源dictionary我认为您正在寻找工会。使用文字值来标识来源。
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 = ?;
【讨论】:
这对我来说不是最好的解决方案,因为联合都加入两个表并重复 id,如果我按 id 选择某些东西并且有两个 id 1,我怎么知道哪一个来自 table1,哪一个来自table2 ...我不能在 ddl 中设置标志,因为它只能有文本/值字段,所以如果我设置像数据源这样的字典,这会设置 id 和 name 通过查看“源”列,您可以知道它来自哪个表。以上是关于使用来自两个数据库的自动增量 ID 连接来自两个表的数据的主要内容,如果未能解决你的问题,请参考以下文章