左连接选择后查询结果标题

时间:2012-08-29 14:30:43

标签: mysql header left-join

我在构建一些多维查询时遇到了一些困难。

我的问题是,例如此查询:

SELECT 
    persons.name, 
    contacts.email 
FROM 
    persons
LEFT JOIN 
    contacts ON persons.person_ID = contacts.person_ID
LIMIT 0,10;

应该返回2列,1列名称为'name',另一列名为'email'。

但我希望它返回标题的方式是这样的:

'persons.name'

'contacts.email'

(我不想创建视图,也不想使用别名或子查询)

甚至可能吗?如果是的话?

提前感谢您的帮助。

提供更多详情:

我将查询db,主表和列存储在表中。然后将列构建到一个数组中,并根据该数组构建一个查询

有些列是子查询的情况,有时它们只是一个表格单元格,有时它们是2列或更多列的值

我的问题是,在动态构建查询之后,我必须显示它,但是如果包含头名称的数组被定义为table.colname,

print $row[$array[column_name]]

评估为print $row[persons.name]

但是mysql服务器生成的索引是'name'而不是'persons.name'

也应该有效,但是如果查询中有两个名称,那么它是不明确的,我没有看到在查询运行后传递where条件的选项。

这就是我不想在第一时间使用别名的原因

2 个答案:

答案 0 :(得分:1)

您可以使用“AS”关键字来提供别名

SELECT persons.name as persons.name, contacts.email as contacts.email 
FROM presons 
LEFT JOIN contacts ON persons.person_ID=contatcs.person_ID 
LIMIT 0,10; 

答案 1 :(得分:1)

尝试使用别名

 SELECT persons.name AS 'person.name', contacts.email AS 'contacts.email' FROM presons
 LEFT JOIN contacts ON persons.person_ID=contatcs.person_ID
 LIMIT 0,10;