有没有办法让mysql select语句返回完全限定列名称,如“table.field”,而不是每个字段都使用AS?有MySQL选择语句返回完全合格的列名称,如table.field
像这样:
SELECT *
FROM table1
LEFT JOIN table2 on table1.f_ID = table2.ID
,其结果将是: “table1.ID”, “table1.name”, “table2.ID”, “table2.name”,...
有没有办法让mysql select语句返回完全限定列名称,如“table.field”,而不是每个字段都使用AS?有MySQL选择语句返回完全合格的列名称,如table.field
像这样:
SELECT *
FROM table1
LEFT JOIN table2 on table1.f_ID = table2.ID
,其结果将是: “table1.ID”, “table1.name”, “table2.ID”, “table2.name”,...
不是。你可以编写一些动态SQL来完成这个任务,但这并不简单。如果你真的想要动态SQL,让我知道,我可以尝试掀起一些东西。
在语句中使用完全限定的字段名将在结果集中生成完全限定的字段名称。
SELECT table1.ID, table1.name, table2.ID, table2.name
FROM table1
LEFT JOIN table2 on table1.f_ID = table2.ID
我意识到,你希望摆脱的负担是手动做这件事。但是,如果您的应用程序对数据库的布局有任何知识,它可以在应用程序内动态生成。
只是我的2美分
你可以这样写,以及:
SELECT table1.*, table2.*
FROM table1
LEFT JOIN table2 on table1.f_ID = table2.ID
无需指定每一列,如果你希望它们都
我在SQLite3数据库上试过这个,并没有完全限定列名。尽管OP询问了MySQL,但我认为这值得注意。 – 2010-04-20 13:06:42
如果你正在使用PHP,你可以使用PDO来获得这个结果。
$PDO->setAttribute(PDO::ATTR_FETCH_TABLE_NAMES, true);
select table1.* , table1='<======'
table2.* , table2='<======'
from table1
left join table2 on table1.f_ID = table2.ID
这对MySQL不起作用。您仍然获取列名称,而不是table.column名称。 – 2016-06-30 05:39:27