3 回答
TA貢獻(xiàn)1875條經(jīng)驗(yàn) 獲得超3個(gè)贊
$select = "agents.person_id, CONCAT(people.first_name, ' ', people.last_name) as last_name, SUM(loans.referral_amount) as referral_amount, COUNT( DISTINCT loans.customer_id ) as no_customers, people.phone_number";
$this->db->select($select, false);
$this->db->from('agents');
$this->db->join('people', 'agents.person_id = people.person_id', 'LEFT');
$this->db->join('loans', 'agents.person_id = loans.referral_agent_id', 'LEFT');
$this->db->where('loans.loan_status', "paid");
$this->db->where('loans.delete_flag', 0);
$this->db->where('agents.deleted', 0);
$result = $this->db->get();
TA貢獻(xiàn)1810條經(jīng)驗(yàn) 獲得超4個(gè)贊
弄清楚了
$select = "c19_agents.person_id, referral_sum.user_referral_amount, CONCAT(c19_people.first_name, ' ', c19_people.last_name) as agents_name, customer_count.no_customers, referral_sum.user_referral_amount, phone_number";
$this->db->select($select, false);
$this->db->from('agents');
$this->db->join('people', 'agents.person_id=people.person_id', 'LEFT');
$this->db->join('(SELECT c19_loans.referral_agent_id, SUM(c19_loans.referral_amount)
as user_referral_amount
FROM c19_loans
WHERE c19_loans.delete_flag = 0 AND c19_loans.loan_status = "paid"
GROUP BY c19_loans.referral_agent_id) referral_sum', 'c19_agents.person_id = referral_sum.referral_agent_id', 'LEFT');
$this->db->join('(SELECT c19_loans.referral_agent_id, COUNT( DISTINCT c19_loans.customer_id)
as no_customers
FROM c19_loans
WHERE c19_loans.delete_flag = 0 AND customer_id > 0
GROUP by c19_loans.referral_agent_id) customer_count', 'c19_agents.person_id = customer_count.referral_agent_id', 'LEFT');
$this->db->where('agents.deleted', 0);
TA貢獻(xiàn)1818條經(jīng)驗(yàn) 獲得超8個(gè)贊
首先,據(jù)我所知,您將“標(biāo)準(zhǔn)查詢”與“查詢生成器”混合在一起,這是僅使用一個(gè)的好習(xí)慣(最好是查詢生成器,以防您切換到另一個(gè)數(shù)據(jù)庫引擎)。
同樣在第二個(gè)連接中,您正在進(jìn)行“AND”比較,盡管這是有效的,但您可以嘗試首先使連接起作用。我認(rèn)為現(xiàn)在可以正常工作,但請確保調(diào)試您的查詢打印結(jié)果并根據(jù)文檔修復(fù)它,
$select = "agents.person_id, CONCAT(people.first_name, ' ', people.last_name) as last_name, SUM(loans.referral_amount) as referral_amount, COUNT( DISTINCT loans.customer_id ) as no_customers, people.phone_number";
$this->db->select($select, false);
$this->db->from('agents');
$this->db->join('people', 'agents.person_id=people.person_id', 'LEFT');
$this->db->join('loans', 'agents.person_id=loans.referral_agent_id', 'LEFT');?
$this->db->where('loans.loan_status', 'paid');
$this->db->where('loans.delete_flag', 0);
$this->db->where('agents.deleted', 0);
$this->db->get();
print_r($this->db->last_query());
database.column(最終建議:每當(dāng)您使用聯(lián)接時(shí),請始終在查詢中使用符號,這樣更容易理解并避免兩個(gè)數(shù)據(jù)庫具有相同名稱的列時(shí)出現(xiàn)錯(cuò)誤)
- 3 回答
- 0 關(guān)注
- 168 瀏覽
添加回答
舉報(bào)
