C# 使用两个数据库中的autoincrement id连接两个表中的数据

C# 使用两个数据库中的autoincrement id连接两个表中的数据,c#,asp.net,mysql,sql,tsql,C#,Asp.net,Mysql,Sql,Tsql,我想连接来自两个数据库的表中的数据。一个是用预定义值(itemId、itemName)归档的,另一个是由用户(itemId、itemName、userId)填写的。Atributes itemId和itemName是相同的,从第一个表中我们选择所有数据,从第二个表中我们按userId选择数据并将这两个结果合并 应区分连接的数据,因为ID是自动递增的,并且可以相同(加倍)。我们希望用这些数据填充下拉列表,例如,使用datasource和dictionary(int是itemId,string是it

我想连接来自两个数据库的表中的数据。一个是用预定义值(itemId、itemName)归档的,另一个是由用户(itemId、itemName、userId)填写的。Atributes itemId和itemName是相同的,从第一个表中我们选择所有数据,从第二个表中我们按userId选择数据并将这两个结果合并

应区分连接的数据,因为ID是自动递增的,并且可以相同(加倍)。我们希望用这些数据填充下拉列表,例如,使用datasource和dictionary(int是itemId,string是itemName),我们只能在dropDownList中使用ValueField和valueText,但这两个表的id可能相同,我们不知道从哪个表中可以通过id选择项

是否有任何优雅的方式来连接这一点,可能与临时表,我们总是当用户登录连接这两个表在临时表等


谢谢你的回答

我想你在寻找一个联盟。使用文字值来标识源

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 = ?;

请给出一组简单的示例数据,比如每个表中有4行,然后是查询结果。一开始听起来你想要一个非常简单的连接,但是清晰会有所帮助。除了Nt的问题,你是在问MySQL还是SQL Server(或者两者都问)?以及哪个版本?这可能会影响答案。每个表或两个表中是否有重复项?表1(id,名称->1个苹果,2个香蕉,3个橙色)表2(id,名称,用户名->1个芒果,2个菠萝,3个草莓)在下拉列表中,我想设置数据源,如dictionary,这样我就可以从表中按id获取所选项目。问题是,apple和mango具有相同的id,如果我按1从数据库中选择,则有2个项目具有此id。但我无法在ddl中为table1/table2设置标志。我使用mssql和sql server 2008,表中没有重复项,名称是唯一的。也许我可以为表1添加id 0,为表2添加id 1,因为当我将datasource设置为dropDownList时,他创建id(字符串)名称(字符串)作为值/文本,以便我可以附加这两个数字(作为我的类型)我现在可以用wich表中的最后一个数字来表示这个项目,我在dropDownList中不会有重复的id。这对我来说不是最好的解决方案,因为union会连接两个表并复制id,如果我按id选择某个项目并有两个id 1,我怎么知道wich来自表1和wich来自表2。。。我不能在ddl中设置标志,因为它只能有文本/值字段,所以如果我像datasource那样设置dictionary,那么设置id和名称,您可以通过检查“source”列来知道它来自哪个表。