我有一个select连接2个表,因此这些表中有相似名称的列,所以现在检索结果时FireDac将下划线1添加到第2列名称以区分2
Select * from Table1 inner join Table2 on
Table1.id = Table2.id
当从具有相似名称的字段获取记录时,我将不得不这样做......
Dataset.FieldByName('Name').asInteger
Dataset.FieldByName('Name_1').asInteger
我想知道是否有设置将_1更改为其他内容,因为我想要更改这是因为我们以前使用的Interbase只添加了1。
答案 0 :(得分:1)
我不知道这样的配置。我唯一能想到的选择就是不使用SELECT *
,而是选择实际所需的列,并为相同的列名添加别名,例如
SELECT Table1.Name, Table2.Name AS Name1, ... from Table1 inner join Table2 on
Table1.id = Table2.id
或者,如果您需要Table1
中的所有列,并且您必须使用SELECT *
,您可以使用:
SELECT Table1.*, Table2.Name AS Name1, ...
答案 1 :(得分:0)
请勿使用select * from
。命名要获取的列,为它们定义别名并使用它们的表名(或它们的别名)来创建唯一的名称。
select t1.Name as Name1, t2.Name as Name2 from Table1 t1 inner join Table2 t2 on t1.Name = t2.Name
您现在可以通过这种方式获取他们的价值
Dataset.FieldByName('Name1').asInteger;