Join Tabel di Laravel 8 Dengan elequent Untuk Meningkatkan Performance Web

Sebelumnya kita sudah membahas tentang membuat CRUD dengan laravel 8. dan pada kesempatan kali ini kita akan membahas tentang menggabungkan beberapa tabel (relasi tabel) atau query joint pada laravel 8 dengan fitur elequent yang dimiliki oleh laravel.

Eloquent adalah salah satu fitur yang dimiliki oleh Laravel yang bisa dimanfaatkan untuk mengakses dan memanipulasi data yang tersimpan di dalam database dengan perintah yang lebih singkat dan mempercepat proses pembuatan CRUD dari database.

Baca Juga : Menampilkan Data multi Table di Codeigniter 4 dengan Join

Pada saat kita mengembangkan sebuah aplikasi dan kita di tuntut untuk menggabungkan atau merelasikan 2 atau lebih tabel menjadi satu. Sering kita membuat kesalahan pada saat membuat sebuah query yang melibatkan beberapa tabel sehingga dapat menghambat kinerja web aplikasi kita menjadi error atau lambat.

Pada artikel kali ini kita akan membahas tentang kueri MySQL dengan Laravel Eloquet yang dapat menyingkat kueri dan mengoptimalkan kinerja.

Inner Join di Laravel

Pada saat membuat sebuah kueri kita sering mendapati dua atau lebih record yang sama dari beberapa tabel. inner join merupakan penggabungan dua tabel atau lebih menjadi satu dengan memadukan record dan kolom yang sama sebagai relasi.

Sebagai contoh misal kita mempunyai dua tabel tabel yang pertama students dengan record id,name,addres dan tabel yang kedua adalah posts dengan record id_post,id,subject dari kedua tabel tersebut terdapat dua record yang sama yaitu id yang dimiliki oleh tabel students dan id yang di miliki oleh tabel post dapat kita relasikan dengan perintah Inner Join berikut ini.

<?php
namespace App\Http\Controllers;

use App\Http\Controllers\Controller;
use App\Student;

class MyController extends Controller
{

    public function index()
    {
        $result = Student::join('students', 'students.id', '=', 'posts.id')
                ->select('students.*')
                ->get();

        print_r($result);
    }

}

Cross Join di Laravel

Cross join bisa jadi disebut dengan CARTESIAN PRODUCT yaitu perkalian dari 2 buah tabel.

Sebagai contoh jika kita ingin menggabungkan silang semua baris dari tabel pertama kemudian dikalikan dengan baris tabel kedua. Maka harus menggunakan CROSS JOIN di Laravel seperti pada cotoh berikut ini :

<?php
namespace App\Http\Controllers;

use App\Http\Controllers\Controller;
use App\Student;

class MyController extends Controller
{

    public function index()
    {
        $result = Student::crossJoin('posts')
                ->get();                

        print_r($result);
    }

}

Left Join di Laravel

Jika kita ingin menampilkan semua baris dari tabel yang ada dikiri maka kita dapat dunakan fungsi LEFT Join pada laravel. LEFT Join akan menampilkan data-data yang tidak berelasi. Namun pada table students (table kiri), data yg tidak berelasi akan bernilai NULL. Berikut contoh query left join di laravel.

<?php
namespace App\Http\Controllers;

use App\Http\Controllers\Controller;
use App\Student;

class MyController extends Controller
{

    public function index()
    {
        $result = Student::leftJoin('students', 'students.id', '=', 'posts.id')
                ->select('students.*')
                ->get();

        print_r($result);
    }

}

Right Join di Laravel

Right join merupakan kebalikan dari left joint. Jika kita ingin mengambil data dari tabel kanan maka fungsi yang kita gunakan adalah Right Join.

Right join akan menampilkan data-data yang tidak berelasi. Namun kebalikan dari LEFT JOIN, pada table posts (table kanan), data yg tidak berelasi akan bernilai NULL.

<?php
namespace App\Http\Controllers;

use App\Http\Controllers\Controller;
use App\Student;

class MyController extends Controller
{

    public function index()
    {
        $result = Student::rightJoin('students', 'students.id', '=', 'posts.id')
                ->select('students.*')
                ->get();

        print_r($result);
    }

}

Demikian pembahasan kali ini tentang JOIN yang ada pada laravel, Jika ada yang salah mohon untuk dikoreksi dan bisa disampaikan dalam komentar dibawah ini. Semoga kita senantiasa diberi kesehatan untuk mempelajari hal-hal baru dalam dunia coding.

Baca Juga : Mengenal Fungsi Join dalam Mysql Yang Wajib Anda Ketahui !!!