MySQL.NET连接器-获取该列所属的表?

MySQL.NET连接器-获取该列所属的表?,.net,asp.net,mysql,.net,Asp.net,Mysql,我将遍历一行表的所有列(这是一种很巧妙的说法——基本上我有一行“R”,在这里我使用R.table.columns来迭代它们) 对于每一列,我想知道它属于哪个表 但是,对于以下查询,结果集中只显示1个表。怎么会?我需要区分不同的表,即使列名相同 SELECT * FROM User LEFT OUTER JOIN Provider ON User.ProviderID=Provider.ID WHERE User.IsDeleted=false 使用别名: SELECT table1.col

我将遍历一行表的所有列(这是一种很巧妙的说法——基本上我有一行“R”,在这里我使用R.table.columns来迭代它们)

对于每一列,我想知道它属于哪个表

但是,对于以下查询,结果集中只显示1个表。怎么会?我需要区分不同的表,即使列名相同

SELECT * FROM User LEFT OUTER JOIN Provider ON User.ProviderID=Provider.ID WHERE User.IsDeleted=false
使用别名:

SELECT 
 table1.column1 AS foo,
 table2.column1 AS bar,
 ...

使用SELECT*无论如何都是不好的实践:

你应该强烈地考虑使用数据库发现的命令和命令< /P> 然后,您可以从中生成查询,并避免使用

select*

为了更直接地回答您的问题,我认为不可能为结果集中的列获取表名,因为这些列根本不必来自表。考虑这个完全有效的查询,例如:

select 'foo' as bar, 1+1 as result;

对我来说这不是坏事。我需要将其用于ORM目的。即使有您的建议,列的TableName也会返回“Table”。换句话说,它根本不起作用。@piotrpo,你在概括。ORM在某些方面是很好的。我不明白“TableName of the column returns“Table”是什么意思,也不明白为什么在您的示例中,由于table1.column1的DataColumn对象,我希望得到名称“table1”。但是,如果我查看DataColumns表,它是一个TableName属性设置为“Table”的表。