2011-07-18 35 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); 

請不要給予好評。這不是我的答案。