2010-06-06 88 views
3

我在我的笨應用程序的模式運行與活動記錄的查詢時,查詢看起來是這樣的,笨活動記錄和mysql

public function selectAllJobs() 
{ 
    $this->db->select('*') 
      ->from('job_listing') 
      ->join('job_listing_has_employer_details', 'job_listing_has_employer_details.employer_details_id = job_listing.id', 'left'); 
      //->join('employer_details', 'employer_details.users_id = job_listing_has_employer_details.employer_details_id'); 

    $query = $this->db->get(); 
    return $query->result_array(); 
} 

這將返回一個數組,看起來像這樣,

[0]=> 
    array(13) { 
    ["id"]=> 
    string(1) "1" 
    ["job_titles_id"]=> 
    string(1) "1" 
    ["location"]=> 
    string(12) "Huddersfield" 
    ["location_postcode"]=> 
    string(7) "HD3 4AG" 
    ["basic_salary"]=> 
    string(19) "£20,000 - £25,000" 
    ["bonus"]=> 
    string(12) "php, html, j" 
    ["benefits"]=> 
    string(11) "Compnay Car" 
    ["key_skills"]=> 
    string(1) "1" 
    ["retrain_position"]=> 
    string(3) "YES" 
    ["summary"]=> 
    string(73) "Lorem Ipsum is simply dummy text of the printing and typesetting industry" 
    ["description"]=> 
    string(73) "Lorem Ipsum is simply dummy text of the printing and typesetting industry" 
    ["job_listing_id"]=> 
    NULL 
    ["employer_details_id"]=> 
    NULL 
    } 
} 

的job_listing_id和employer_details_id回報爲NULL,但是如果我在phpMyAdmin運行SQL我得到充分的結果集,我在phpMyAdmin運行是查詢,

SELECT * 
FROM (
`job_listing` 
) 
LEFT JOIN `job_listing_has_employer_details` ON `job_listing_has_employer_details`.`employer_details_id` 
LIMIT 0 , 30 

我有什麼不同的結果嗎?

+0

這很奇怪...你有沒有試過返回$ query-> result(); 而不是$ query-> result_array(),以查看結果的對象版本是否呈現相同的問題? – 2010-06-06 19:46:00

回答

3

運行$ this-> db-> last_query()並檢查差異。這是一個非常有用的調試工具。

當然限制會有效果,但我忽略了這一點。

它似乎在您的查詢在phpmyadmin中,你的'ON'沒有第二部分。 我覺得你在phpMyAdmin查詢應該是:

SELECT * 
FROM (
`job_listing` 
) 
LEFT JOIN `job_listing_has_employer_details` ON `job_listing_has_employer_details`.`employer_details_id` = = `job_listing`.`id` 

您應該使用result_array,儘管對方是什麼人說。