我在构建一些多维查询时遇到了一些困难。
我的问题是,例如此查询:
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条件的选项。
这就是我不想在第一时间使用别名的原因
答案 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;