2008-11-06 49 views

回答

1

不是。你可以编写一些动态SQL来完成这个任务,但这并不简单。如果你真的想要动态SQL,让我知道,我可以尝试掀起一些东西。

0

在语句中使用完全限定的字段名将在结果集中生成完全限定的字段名称。

SELECT table1.ID, table1.name, table2.ID, table2.name 
FROM table1 
LEFT JOIN table2 on table1.f_ID = table2.ID 

我意识到,你希望摆脱的负担是手动做这件事。但是,如果您的应用程序对数据库的布局有任何知识,它可以在应用程序内动态生成。

只是我的2美分

+0

这对MySQL不起作用。您仍然获取列名称,而不是table.column名称。 – 2016-06-30 05:39:27

1

你可以这样写,以及:

SELECT table1.*, table2.* 
    FROM table1 
LEFT JOIN table2 on table1.f_ID = table2.ID 

无需指定每一列,如果你希望它们都

+1

我在SQLite3数据库上试过这个,并没有完全限定列名。尽管OP询问了MySQL,但我认为这值得注意。 – 2010-04-20 13:06:42

3

如果你正在使用PHP,你可以使用PDO来获得这个结果。

$PDO->setAttribute(PDO::ATTR_FETCH_TABLE_NAMES, true);

更多信息请参见SQL Select * from multiple tables

0
select table1.* , table1='<======' 

     table2.* , table2='<======' 

from table1 

    left join table2 on table1.f_ID = table2.ID