zend格式的mysql查询

时间:2013-03-01 13:31:36

标签: mysql zend-framework

我有以下sql语句

SELECT a.* FROM accounts a 
JOIN account_friends f 
ON f.friend_id = a.id 
WHERE f.account_id = 12;

会产生类似

的内容
id    username    password    email
14      test        test       ..
15      test2       test       ..

我不能做的是将其转换为zend语句。我试过这个

    $accFriendTable = new Default_Model_DbTable_AccountFriends();
    $query = $accFriendTable->select()->setIntegrityCheck(false);
    $query->from(array('a' => 'accounts'), array('a.*'));
    $query->join(array('f' => 'account_friends'), 'f.friend_id = a.id');
    $query->where('f.account_id = ?', $this->_id);
    $friendsList = $accFriendTable->fetchAll($query);

导致从accounts表和account_friends表中选择两列,如下所示

id    username    password    email    account_id    friend_id
1      test        test        ..         12             14
2      test2       test        ..         12             15

任何帮助将不胜感激:)

1 个答案:

答案 0 :(得分:0)

您需要从连接的表中提供所需的列数组,因为默认情况下它将从中获取所有列。

如果您不希望任何列只是通过NULL,如下所示

$query->join(array('f' => 'account_friends'), 'f.friend_id = a.id',NULL);