【问题标题】:join two tables in codeigniter and refere to two fields in the same table在codeigniter中连接两个表并引用同一个表中的两个字段
【发布时间】:2016-09-27 09:40:02
【问题描述】:

我的应用程序是这样工作的:α 用户创建一个任务并分配它 给另一个用户。我有两张桌子 (用户表) 用户名

(任务表) 任务主题 创造者 分配给

我的问题是如何通过 codeigniter 制作 join 语句来显示 任务、它的创建者名称和分配给谁。

【问题讨论】:

  • 检查我发布的查询,希望它能完美地为你工作@hasanali
  • 我已经加入了,但我只能获得一个用户来完成这项任务。创造者或被分配的唯一人

标签: php mysql codeigniter


【解决方案1】:

请检查以下查询以加入 codeigniter

       $user   = 'user';
       $task   = ' task,';

    $this->db->select($user.'.*,'.$task.'.*');
    $this->db->from($task); 
    $this->db->join($user,
            $task.'.user_id = '.$user.'.user_id'
    );
    $this->db->join($user,$user.'.user_id = $task.'created_by','left');
    $query = $this->db->get();
    if ($query->num_rows() > 0){
        $result = $query->result();
        return $result;
    }
    return FALSE;

您可以使用自己想要显示的自定义字段,而不是使用 *,并在加入时使用两个表中的公共 id,就像我使用 user_id 一样

【讨论】:

  • 我已经写了同样的查询,但正如我之前所说,这将只返回一个用户名,创建者或分配的
  • $this->db->join($user, $task.'.creator = '.$user.'.user_id'
  • $this->db->join($user, $task.'.assigned = '.$user.'.user_id'
  • 我刚刚更新了查询,您可以再试一次吗? @hassan 阿里
  • 这是 sql 的打印:SELECT task.*, user.user_name FROM task JOIN user ON user.user_id = task.creator_id LEFT JOIN user ON user.user_id = task.task_assigned_to
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-12-23
  • 2014-06-22
  • 2021-08-30
  • 2015-11-20
相关资源
最近更新 更多