2010-06-06 110 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,尽管对方是什么人说。