簡體   English   中英

CodeIgniter Where_In從其他表中選擇?

[英]CodeIgniter Where_In select from different table?

我正在嘗試在活動記錄中隱藏此查詢

SELECT 
crm_clients.id,
crm_clients.`moved_date`,
crm_clients.`contractor_id` 
FROM
dev_pfands.`crm_clients` 
WHERE crm_clients.`contractor_id` = 11 
AND (
crm_clients.`status` = 9 
OR crm_clients.`status` = 8 
OR crm_clients.`status` = 7
) 
AND crm_clients.id IN 
(SELECT 
 crm_client_cheques.`client_id` 
FROM
dev_pfands.`crm_client_cheques`) 
AND crm_clients.`moved_date` BETWEEN '2014-08-01' 
AND '2014-11-29 ' 
AND crm_clients.`contractor_id`<>''
GROUP BY crm_clients.`id

我遇到的問題是

AND crm_clients.id IN 
    (SELECT 
     crm_client_cheques.client_id 
    FROM
    dev_pfands.crm_client_cheques) `

我嘗試了where_in方法,但是超時了,我嘗試包括$this ->db_pfands -> where('crm_client_cheques.client id' ,'id');嘗試$this ->db_pfands -> where('crm_client_cheques.client id' ,'id'); 被錯誤擊中,不知道該如何克服。

原始查詢應該返回703行,而當我刪除被卡住的部分時,它會增加到3045,因此我需要將其包括在內。 任何幫助表示贊賞。

首先,您的代碼有錯誤。

$this->db_pfands->where('crm_client_cheques.client id', 'id');

這將是

$this->db_pfands->where('crm_client_cheques.client_id', 'id');

您必須提供正確的列名,據我所知,數據庫的列名不包含任何空格。

現在,我認為此活動記錄查詢將幫助您獲得結果。

$query = $this->db->select('crm_clients.id, crm_clients.moved_date, crm_clients.contractor_id')
                  ->where('moved_date BETWEEN "2014-08-01" AND "2014-11-29"')
                  ->where('contractor_id', 'id')
                  ->where_in('status', [9,8,7])
                  ->from('crm_clients')
                  ->join('crm_client_cheques', 'crm_client_cheques.client_id = crm_clients.id')
                  ->group_by('id')
                  ->get();
$result = $query->result();

可能是您更改了幾個名稱,因為它們位於不同的數據庫中,但是我相信您可以做到。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM