2011-07-18 31 views
1

这是由笨显示的SQL查询:Codeigniter SQL加入多个ON子句?

SELECT * FROM(status_updates的)JOIN friend_connections ON(( status_updates.userid = friend_connections.userid)OR (status_updates.userid = friend_connections.friend_id)),其中 status_updates.enabled = “1” AND friend_connections.enabled = “1” ORDER BY status_updates.date DESC,status_updates.time DESC LIMIT 20

的笨命令我用是:

$this->db->from('status_updates'); 
$this->db->order_by("status_updates.date", "desc"); 
$this->db->order_by("status_updates.time", "desc"); 
$this->db->limit(20); 
$this->db->join('status_updates', '((status_updates.userid=friend_connections.userid) OR (status_updates.userid=friend_connections.friend_id))'); 

我想要做的是选择两个表中的所有内容,status_updates和friend_connections。 status_updates有一列用户标识,我想与来自friend_connections的userid或friend_id匹配。有人能告诉我我该怎么做吗?

另外我注意到Codeigniter在上面的SQL查询中的ON命令之后删除了两个开括号。为了你自己的答案

+1

对不起,但我现在已经能够得到它的工作。我没有使用codeigniter sql命令,而是手动编写它。 '$ sql =“SELECT * FROM(status_updates)JOIN friend_connections ON((status_updates.userid = friend_connections.userid)OR(status_updates.userid = friend_connections.friend_id))WHERE status_updates.enabled =”1“AND friend_connections.enabled =“1”ORDER BY status_updates.date desc,status_updates.time desc LIMIT 20“; ** $ status = $ this-> db-> query($ sql); **' –

+0

hi Bolu,你可以添加这个答案,然后接受这个答案,这样它就会从“未答复”问题页面?谢谢, –

回答

0

复制到从没有答案的堆栈中删除此:

$sql = "SELECT * FROM (status_updates) JOIN friend_connections ON ((status_updates.userid=friend_connections.userid) OR (status_updates.userid=friend_connections.friend_id)) WHERE status_updates.enabled = "1" AND friend_connections.enabled = "1" ORDER BY status_updates.date desc, status_updates.time desc LIMIT 20"; 
$status = $this->db->query($sql); 

请不要给予好评。这不是我的答案。