【问题标题】:Sql insert,select using CodeIgniterSql插入,使用CodeIgniter选择
【发布时间】:2014-08-21 18:19:12
【问题描述】:

我有一个问题不知道如何解决,请帮助我,所以我的数据库中有 2 个表:

dosar
id  name  date  fk_verificator  fk_administrator  fk_user
user
id name surname is_verificator  is_admin

我创建并插入到我的数据库中,在 fk_verificator 中存储了来自验证者的用户的 id,在 fk_administrator 中存储了来自管理员用户的 id,所以我的问题是可以创建一个查询来获取这个 dosar来自用户表的 2 个用户(一个是管理员用户,一个是管理员用户)还是需要创建一个辅助表? thnx提前。请帮助我 例如,如果我有:

dosar table:
id   name       fk_verif   fk_admin   fk_user
1   dosarNr.1     2          1           1

user
id     name     surname   is_verific   is_admin
 1     name1    surname1     N           Y
 2     name2    surname2     Y           N

现在在这个选择中我想得到:

dosar1    name1   surname1   name2   surname2

【问题讨论】:

    标签: php mysql sql codeigniter codeigniter-2


    【解决方案1】:

    对于您预期的结果集,您必须使用 doser 两次加入您的用户表,以获得管理员和验证记录的人的名称

    Mysql查询

    select 
    d.name,
    u1.name name1,
    u1.surname surname1,
    u1.name name2,
    u1.surname surname2
    from dosar d
    join `user` u1 on(d.fk_admin = u1.id and u1.is_admin = 'Y')
    join `user` u2 on(d.fk_verif = u2.id and u2.is_verific = 'Y')
    

    FIDDLE DEMO

    活动记录查询

    $result=$this->db->select('d.name,
                       u1.name name1,
                       u1.surname surname1,
                       u1.name name2,
                       u1.surname surname2')
              ->from('dosar d')
              ->join("user u1','d.fk_admin = u1.id and u1.is_admin = 'Y'")
              ->join("user u2','d.fk_verif = u2.id and u2.is_verific = 'Y'")
              ->get()
              ->result();
    

    运行简单查询

    $sql="select 
        d.name,
        u1.name name1,
        u1.surname surname1,
        u1.name name2,
        u1.surname surname2
        from dosar d
        join `user` u1 on(d.fk_admin = u1.id and u1.is_admin = 'Y')
        join `user` u2 on(d.fk_verif = u2.id and u2.is_verific = 'Y')";
    $this->db->query($sql);
    

    【讨论】:

      【解决方案2】:

      这个问题很难理解,但听起来你需要加入:

      $this->db->join($this->_users_table . ' as u', ' u.id = dosar.admin_id');
      

      【讨论】:

      • 嗯,这是在黑暗中拍摄的。几乎不可能告诉你在这里问什么。您需要知道如何选择吗? $this->db->select();
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-10-26
      • 2014-10-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-05-29
      相关资源
      最近更新 更多