我正在使用PHP与MySQL PDO,所以我的目标是同时从多个表中进行选择,问题是那些表包含一些相同的字段名称(如status,user_id,deleted等)。
那么,有没有办法在像cakePHP中的表名索引的数组中得到结果:
//--SQL Query
$db->query('Select users.id, users.name, users.status, users.deleted,
books.id, books.name, books.status, books.deleted where
users.id=books.user_id AND user.id=1');
//--result I need
array (
['users']=>array(
'id'=>1,
['name']=>'test',
['status']=>'active',
['deleted']=>0
),
['books']=>array(
['id']=>2,
['user_id']=>1,
['name']=>'Lost Word',
['status']=>'pending',
['deleted']=>0
)
)
答案 0 :(得分:0)
PDO没有为您执行此操作的任何功能。您必须编写代码来处理PDO返回的行。
但是您必须知道哪个列来自哪个表。即使PDOStatement::getColumnMeta()也没有为每列返回原始表,因为有时候选择列表中的表达式并不对应于任何单个表。
例如,您如何安排此查询的结果?
SELECT users.deleted + books.deleted AS `either_deleted`
FROM users JOIN books ON users.id=books.user_id