有没有办法让mysql select语句返回完全限定的列名,比如“table.field”而不为每个字段使用AS?
像这样:SELECT *
FROM table1
LEFT JOIN table2 on table1.f_ID = table2.ID
,结果将是: “table1.ID”,“table1.name”,“table2.ID”,“table2.name”,...
答案 0 :(得分:3)
如果您使用的是PHP,则可以使用PDO来获得此结果。
$PDO->setAttribute(PDO::ATTR_FETCH_TABLE_NAMES, true);
有关详细信息,请参阅SQL Select * from multiple tables。
答案 1 :(得分:1)
不是真的。您可以编写一些动态SQL来完成此任务,但这并不简单。如果你真的想要动态SQL,请告诉我,我可以尝试一些东西。
答案 2 :(得分:1)
你也可以这样写:
SELECT table1.*, table2.*
FROM table1
LEFT JOIN table2 on table1.f_ID = table2.ID
如果您想要全部
,则无需指定每一列答案 3 :(得分:0)
在语句中使用完全限定的字段名称将在结果集中生成完全限定的字段名称。
SELECT table1.ID, table1.name, table2.ID, table2.name
FROM table1
LEFT JOIN table2 on table1.f_ID = table2.ID
我意识到你希望摆脱的负担是手动完成的。但是,如果您的应用程序具有关于数据库布局的任何知识,则可以在应用程序中动态生成它。
只需2美分
答案 4 :(得分:0)
select table1.* , table1='<======'
table2.* , table2='<======'
from table1
left join table2 on table1.f_ID = table2.ID