- Seme Framework
- versi 4.0.3 (ID)
- Persyaratan
- Download & Install
- Pengaturan
- Tutorial
- Perutean URI
- Konstanta
- Variabel Global
- Model
- View
- Controller
- Library
- CLI (command line interface)
- Core
Metode Join Composite
Metode join_composite
digunakan untuk menggabungkan hasil query dari dua tabel atau lebih dengan syarat join lebih dari 1 kunci.
Metode ini akan mengeksekusi perintah SQL JOIN
dan juga bagian dari Query Builder
.
Metode ini juga cocok untuk digunakan dalam proses join dengan kondisi PRIMARY KEY lebih dari satu.
Bentuk Umum
Berikut ini adalah bentuk umum metode join_composite
dari properti $db
di kelas SENE_Model .
$this->db->join_composite(
string $table2_name,
string $table2_alias,
array $compositeObjects
[, string $join_method = ""]
): $this->db
Parameter
Metode ini membutuhkan 4 parameter wajib dan 1 parameter opsional.
$table2_name
Nama tabel yang akan dijoinkan.
$table2_alias
Nama alias tabel yang akan dijoinkan.
$compositeObjects
Array yang berisi objek komposit, isi nilai ini dibuat oleh metode composite_create .
$join_method
Cara yang digunakan untuk menjoinkan tabel, nilai defaultnya adalah string kosong ""
.
Berikut ini adalah beberapa nilai yang cocok untuk isi dari parameter join_method
:
left
untuk left joinright
untuk right joininner
untuk inner joinouter
untuk outer join
Contoh Penggunaan
Berikut ini adalah contoh penggunaan metode join_composite
pada file d_sales_model.php
.
class D_Sales_Model extends SENE_Model{
var $tbl = 'd_sales';
var $tbl_as = 'dsl';
var $tbl2 = 'b_seller';
var $tbl2_as = 'bs';
public function __construct(){
parent::__construct();
$this->db->from($this->tbl,$this->tbl_as);
}
private function __joinTbl2(){
$composites = array();
$composites[] = $this->db->composite_create("$this->tbl_as.nation_code","=","$this->tbl_as.nation_code");
$composites[] = $this->db->composite_create("$this->tbl_as.b_seller_id","=","$this->tbl_as.id");
return $composites;
}
public function getByOrderId($id){
$this->db->join_composite($this->tbl2,$this->tbl2_as,$this->__joinTbl2(),"inner");
$this->db->where_as("$this->tbl_as.id",$this->db->esc($id));
return $this->db->get_first();
}
}
Hasil Perintah SQL
Berikut ini adalah perintah SQL yang dihasilkan oleh metode yang ada pada contoh kelas D_Sales_Model
.
-- result from executing D_Sales_Model::getByOrderId(37) --
SELECT *
FROM `d_sales` dsl
INNER JOIN b_seller bs
ON (
dsl.nation_code = bs.nation_code
AND dsl.b_seller_id = bs.id
)
WHERE
dsl.id = "37"
LIMIT 0, 1;