【发布时间】:2017-04-25 18:29:04
【问题描述】:
MySQL查询如下
SELECT t1.*, t2.*, t3.*, t4.*, t5.*, t6.*
FROM table1 t1
INNER JOIN table2 t2
INNER JOIN table3 t3
INNER JOIN table4 t4
INNER JOIN table5 t5
INNER JOIN table6 t6
order by t1.updated_time, t2.updated_time, t3.updated_time, t4.updated_time, t5.updated_time, t6.updated_time desc
从上面的查询中,我需要带有各自表名的结果,例如
Array(
[0] => stdClass Object
(
[id] => 1
[cloumn1] => data1
[column2] => table3
[updated_time] => data1
)
[1] => stdClass Object
(
[id] => 2
[cloumn1] => data1
[column2] => table1
[updated_time] => data2
)
)
这些表格有超过 15 列,可能会有所不同。
如何通过修改查询来达到结果?
【问题讨论】:
-
嗨。修改
SELECT部分。SELECT t1.id as id, t1.column as colum1, t3.column3 as column3, ... -
一个表有超过 15 列,可能因表而异
-
好的。这是不可能的......直接:)但是,您可以使用一些技巧。例如:分析表结构 (
SHOW COLUMNS),并通过添加t1.id as t1_id, t1.c1 as t1_c1, t2.id as t2_id, ...动态创建 SQL 查询。这是一些 ORM 使用的技巧。
标签: php mysql join inner-join