【问题标题】:Codeigniter MySQL Join ComplexCodeigniter MySQL 连接复合体
【发布时间】:2018-01-15 11:38:38
【问题描述】:

我有几张表想用一个 ID 一次性显示。

表 A

标识 | isi a1 | isi a2

表 B

标识 | id_a | isi b1 | isi b2

表 C

标识 | id_a | isi c1 | isi c2

表 D

标识 | id_a | isi d1 | isi d2

表 E

标识 | id_a | isi e1 | isi e2

我想显示 isi B1-E2 每个表在表 A 中都有 id_a = id。我不知道 mysql join,我尝试过这段代码

$this->db->select('BaseTbl.id, BaseTbl.tanggal, BaseTbl.atas_nama, BaseTbl.kerugian, BaseTbl.keterangan, BaseTbl.admin, BaseTbl.status');
$this->db->from('data_blacklist as BaseTbl');
$this->db->join('bl_rekening as Rekening, bl_telefon as Telefon, bl_bukti as Bukti, bl_pelapor as Pelapor', 'Rekening.id_blacklist = BaseTbl.id, Telefon.id_blacklist = BaseTbl.id, Bukti.id_blacklist = BaseTbl.id, Pelapor.id_blacklist = BaseTbl.id','left');

但它总是给我

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ' bl_telefon as Telefon, bl_bukti as Bukti, bl_pelapor as Pelapor ON `Rekening`.`' at line 3

我现在不知道。任何想法?我使用codeigniter

【问题讨论】:

    标签: php mysql codeigniter join


    【解决方案1】:

    试试这个。您必须查询每个表的连接。你不能把它们结合起来

    $this->db->select('BaseTbl.id, BaseTbl.tanggal, BaseTbl.atas_nama, BaseTbl.kerugian, BaseTbl.keterangan, BaseTbl.admin, BaseTbl.status');
    $this->db->from('data_blacklist as BaseTbl',);
    $this->db->join('bl_rekening as Rekening','Rekening.id_blacklist = BaseTbl.id','left');
    $this->db->join('bl_telefon as Telefon','Telefon.id_blacklist = BaseTbl.id','left');
    $this->db->join('bl_bukti as Bukti','Bukti.id_blacklist = BaseTbl.id','left');
    $this->db->join('bl_pelapor as Pelapor','Pelapor.id_blacklist = BaseTbl.id','left');
    

    【讨论】:

      【解决方案2】:
      $this->db->select('a.*,b.*,c.*,d.*,e.*');
              $this->db->from( TABLES::$A . ' AS a' );
              $this->db->join(TABLES::$B .  ' AS b', 'a.id = b.id_a');
              $this->db->join(TABLES::$C .  ' AS c', 'a.id = c.id_a');
              $this->db->join(TABLES::$D .  ' AS d', 'a.id = d.id_a');
              $this->db->join(TABLES::$E .  ' AS e', 'a.id = e.id_a');
      
              $query=$this->db->get();
              //  echo $this->db->last_query();
              $result = $query->result_array();
      
              return $result;
      

      【讨论】:

        【解决方案3】:

        我可以帮助您在 CodeIgniter 中进行手动查询。

        return $this->db->query("select A.*, B.*, C.*, D.*, E.* from Table A, Table B, Table C, Table D, Table E WHERE A.id = B.id_a AND A.id = C.id_a AND A.id = D.id_a AND A.id = E.id_a")->result_array();
        

        A,B,C,D 和 E 是表的别名。如果存在值,它将为您带来数据。或者你也可以写手动查询

        【讨论】:

          猜你喜欢
          • 2014-02-02
          • 2013-08-04
          • 2014-10-01
          • 2019-06-30
          • 1970-01-01
          • 2013-01-22
          • 1970-01-01
          • 2011-12-26
          • 1970-01-01
          相关资源
          最近更新 更多