当我从DB中选择数据时,我遇到了zend的问题。在我的查询中,我不希望从我加入另一个表的表中选择任何列。我在第三个参数中使用array()。但是当我这样做时:
$sql = $db->select();
$sql->from( "message", "message.message_id" )
->->join("network_users","message.network_id = network_users.network_id and message.user_id = network_users.user_id","network_users.network_id") //no get column
->join("users","message.user_id = users.user_id",array()) //no get column
->where( "message.network_id = :network_id" )
->where( "message.del_flg = 0" )
->where( "network_users.del_flg = 0" )
->where( "users.del_flg = 0" )
->order( "message.regist_date DESC" );
$ary[':network_id'] = $network_id;
$ret = $db->fetchAll($sql, $ary);
return empty($ret[0]["user_id"]) ? array():$ret;
我的结果总是array(0) {}
当我在每个表中得到最少一列时,它会响应正确的结果。
对我的问题有任何想法????
感谢您的帮助。
答案 0 :(得分:3)
使用null
代替array()
所以看起来像这样:
->join("users","message.user_id = users.user_id",null)
答案 1 :(得分:0)
我发现了问题,问题是我使用的是return empty($ret[0]["user_id"]) ? array():$ret;
而不是return empty($ret[0]["message_id"]) ? array():$ret;
。
这就是我总是收到array(0) {}
的原因。
感谢您的帮助。 ^ _ ^