0

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

我的问题是,例如这个查询:

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'

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

甚至可能吗?如果是怎么办?

预先感谢您的帮助。

要提供更多详细信息:

我将查询数据库、主表和列存储在表中。然后将这些列构建到一个数组中,并基于该数组构建一个查询

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

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

print $row[$array[column_name]]

评估为print $row[persons.name]

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

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

这就是我不想首先使用别名的原因

4

2 回答 2

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; 
于 2012-08-29T14:34:25.737 回答
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;
于 2012-08-29T14:34:45.003 回答