【问题标题】:How to get result like CakePHP, with INNER JOIN (PDO)? Is it possible using only PDO?如何使用 INNER JOIN (PDO) 获得像 CakePHP 这样的结果?是否可以仅使用 PDO?
【发布时间】:2016-03-23 06:15:27
【问题描述】:

从这个查询中,我想通过使用 PDO 的 INNER JOIN 来获取这样的数据。 CakePHP 是如何获取数据的?

SELECT * FROM users INNER JOIN group ON users.group_id = group.id

CakePHP 将显示如下数组: Array Users |-- id |-- name |-- phone |-- group_id Group |-- id |-- name

PDO: Array |-- id |-- name |-- phone |-- group_id

如何像 CakePHP 一样拆分数据? PDO/MYSQL/PHP 可以吗?

【问题讨论】:

  • 如果两个表有相同的字段,例如 id 和 name,你需要一个别名,例如 select user.id as userID ... etc

标签: php mysql arrays cakephp pdo


【解决方案1】:

默认行为是返回一个以模型名称(或别名)为键的关联数组。

如果您只想处理字段名称,可以使用Hash 类。

例如,使用以下代码:

$results=$this->User->query("SELECT * FROM users INNER JOIN group ON users.group_id = group.id");
$users=Hash::extract($results, '{n}.Users');

$users 应如下所示:

Array
    |-- id
    |-- name
    |-- phone
    |-- group_id

查看 Cookbook 了解更多信息:Hash Class

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-10-22
    • 2010-09-21
    • 1970-01-01
    • 2011-04-27
    • 2012-02-03
    • 2017-09-14
    • 1970-01-01
    相关资源
    最近更新 更多