我有以下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
任何帮助将不胜感激:)
答案 0 :(得分:0)
您需要从连接的表中提供所需的列数组,因为默认情况下它将从中获取所有列。
如果您不希望任何列只是通过NULL
,如下所示
$query->join(array('f' => 'account_friends'), 'f.friend_id = a.id',NULL);