连接多个表为特定列返回0? PHP / MySQL的

时间:2013-11-01 13:54:02

标签: php mysql sql codeigniter join

我现在遇到一个问题,我在rating表中有一个名为links的列,并且列中除了0之外肯定有值{{1}是foreach链接返回的唯一值。当我为该列执行简单的get时,它会显示所有其他值,但不会在我执行SQL Join时显示。

我知道问题是我加入了这些表格,但我不确定如何加入这些特定的表格。

数据库表结构

0列是导致我出问题的列。

rating 'links'

id | title | url | user_id | list_id | rating | weight | date_created 'list'

id | list_title | list_description | user_id | rating | views | date_created 'link_ratings'

型号:

id | user_id | link_id | rated | date_created

感谢任何帮助。

2 个答案:

答案 0 :(得分:1)

你应该试试这个:

function get_latest(){
    $this->db->select('list.*, users.*, links.id as current_link_id');
    $this->db->from('links');
    $this->db->join('list', 'links.list_id = list.id'); 
    $this->db->join('users', 'links.user_id = users.id');
    $this->db->join('link_ratings', 'links.id = link_ratings.link_id','left');      
    $this->db->order_by('links.date_created', 'DESC');
    $this->db->limit(100);
    $get_latest = $this->db->get()->result_array(); #fetch all rows here
    echo "<pre>";print_r( $get_latest );die; #print all rows and see if its fetching ratings corrctly or not.
    echo $this->db->last_query();die; #check the query generated
    return $get_latest;
}

答案 1 :(得分:0)

原因将完全合乎逻辑,因为连接将导致不返回任何结果,因为没有结果。我已经陷入了很多次。

我无法诊断您的特定问题,但遇到类似问题时我:

启用CI配置文件

2- var_dump数组,以便您可以看到正在发生的事情

3-编写传统的SQL查询并在PHPMyAdmin中运行

一个或三者的组合将使您能够诊断。