Cara menggabungkan 2 tabel mysql

Cara menggabungkan 2 tabel mysql

Cara Menampilkan dan Menggabungkan Dua tabel dengan Join di Php. Assalamualaikum, halo semuanya, kembali lagi di sahretech. Kali ini kita akan belajar bagaimana cara menampilkan dan menggabungkan 2 tabel yang saling berelasi dengan menggunkan fungsi join yang sekaligus akan diimplementasikan ke script php. Bagaimana caranya ? ikuti tutorialnya berikut ini !.


SQL Join adalah sebuah fungsi di dalam RDBMS (relationship database management system) yang tujuannya adalah untuk menggabungkan 2 atau lebih tabel yang saling berelasi. Setiap aplikasi yang menggunakan RDBMS sudah pasti harus menerapkan fungsi ini untuk mendapatkan data dari tabel lainnya. Sebagai contoh tabel user dan tabel post seperti gambar di bawah ini :

Cara menggabungkan 2 tabel mysql
Join 2 tabel

Pada aplikasi yang sesungguhnya, kita perlu menampilkan post dan nama user secara bersamaan. Tapi itu tidak bisa dilakuan hanya dengan menselect tabel post saja. Tidak hanya disitu, kadang kala kita perlu menampilkan beberapa data lain yang berkaitan dengan user serperti gambar icon, atau status si user.

Kasus yang baru saja saya jelaskan di atas akan menjadi pembahasan kita kali ini. Pada tutorial kali ini kita akan membuat aplikasi berita sederhana dengan memanfaatkan 2 tabel yang saling berelasi. Yaitu tabel user dan tabel post. Ok langsung saja kita masuk ke tutorial intinya.

  • 1. Buatlah database baru dengan nama latihan,
  • 2. Buatlah tabel baru dengan nama user, ikuti strukturnya seperti gambar di bawah ini dan jangan lupa untuk mengisi beberapa data di dalamnya
Cara menggabungkan 2 tabel mysql
tabel user
  • 3. Buatlah tabel baru dengan nama post, ikuti strukturnya seperti gambar di bawah ini dan jangan lupa untuk mengisi beberapa data di dalamnya.
Cara menggabungkan 2 tabel mysql
tabel post
  • 4. Buatlah relasi atau hubungan diantara kedua tabel, iduser yang ada pada tabel post digunakan untuk menghubungkan post tertentu kepada pemilik post. klik tabel post > klik relation view > klik internal relationships > pada kolom internal relation, isi seperti gambar di bawah ini.
Cara menggabungkan 2 tabel mysql
Membuat relasi post dengan user
  • 5. Buatlah sebuah file baru dengan nama database.php. file ini berfungsi untuk membuat koneksi, menghubungkan tabel, dan mengambil data. Ikuti langkahnya seperti gambar di bawah ini.

<?php
//melakukan koneksi ke database
$koneksi        = mysqli_connect("localhost", "root", "", "latihan");

//melakukan join antara tabel user dan tabel post
//dibaca : ambil semua data dari post gabungkan user dimana user.iduser = post.iduser
//iduser adalah penghubung diantara kedua tabel
//iduser disebut primary key di tabel user dan disebut foreign key di tabel post
$join           = "select * from post join user on user.iduser = post.iduser";
$select         = mysqli_query($koneksi, $join);

?>

Penjelasan : 

Line 3 : melakukan koneksi ke database, dengan host : localhost, user : root, password : kosong dan database : latihan
Line 9 : membuat fungsi join, di dalam query join membutuhkan beberapa parameter yaitu select : untuk tabel yg akan ditampilkan, join digunakan untuk menggabungkan tabel lain, on digunakan untuk menyamakan field diantara 2 buah tabel

    • 6. Buatlah sebuah file baru bernama index.php. file ini berfungsi untuk menampilkan seluruh data yang ada di file database.php
    
    <link href="//maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css" rel="stylesheet" id="bootstrap-css">
    <link href="https://maxcdn.bootstrapcdn.com/font-awesome/4.6.3/css/font-awesome.min.css" rel="stylesheet" integrity="sha384-T8Gy5hrqNKT+hzMclPo118YTQO6cYprQmhrYwIiQ/3axmI1hQomh7Ud2hPOy8SP1" crossorigin="anonymous">
    <style>
        img{width:100%;}
    </style>
    <div class="container">
        <br>
        <div class="row">
      <div class="col-md-12">
        <h4>List of News Section</h4>
        <p>Find the updates on Latest News in this area</p>
      </div>
     </div>
        <?php
        // import file database.php untuk menggunakan fungsi di dalamnya
        include "database.php";
    
        //melakukan looping
        while($data = mysqli_fetch_array($select)){ ?>
            <div class="row">
                <div>
                    <div class="row mb-2">
                        <div class="col-md-12">
                            <div class="card">
                                <div class="card-body">
                                    <div class="row">
                                        <div class="col-md-4">
                                            <img src="http://www.3forty.media/cannix/wp-content/uploads/2018/03/clem-onojeghuo-127166-unsplash-1-500x333.jpg ">
                                        </div>
                                        <div class="col-md-8">
                                            <div class="news-title">
                                                <a href="#">
                                                    <!-- menampilkan data judul -->
                                                    <h5><?php echo $data['judul']; ?></h5>
                                                </a>
                                            </div>
                                            <div class="news-cats">
                                                <ul class="list-unstyled list-inline mb-1">
                                                    <li class="list-inline-item">
                                                        <i class="fa fa-user text-danger"></i>
                                                        <!-- menampilkan data nama dan status dari tabel user -->
                                                        <a href="#"><small><?php echo $data['nama']; ?></small> - <small><?php echo $data['status']; ?></small></a>
                                                    </li>
                                                    <li class="list-inline-item">
                                                        <i class="fa fa-calendar text-danger"></i>
                                                        <!-- menampilkan data tanggal -->
                                                        <a href="#"><small><?php echo $data['tanggal']; ?></small></a>
                                                    </li>
                                                </ul>
                                            </div>
                                            <div class="news-content">
                                                <p><?php echo $data['isi']; ?></p>
                                            </div>
                                            <div class="news-buttons">
                                                <button type="button" class="btn btn-outline-danger btn-sm">Read More</button>
                                            </div>
                                        </div>
                                    </div>
                                </div>
                            </div>
                        </div>
                    </div>
                </div>
            </div>
        <?php } ?>
    </div>
    

    Penjelasan :

    tampilan menggunakan bootstrap
    sama seperti melooping data dari sebuah tabel, saat query join sudah dibuat maka anda tinggal memanggil nama fieldnya saja, jika terdapat kolom "nama" pada tabel user maka anda tinggal memanggil echo $data['nama']

    • 7. Jalankan di browser kalian, dan lihatlah hasilnya akan tampak seperti gambar di bawah ini.
    Cara menggabungkan 2 tabel mysql
    Tampilan berita sederhana

    Ada beberapa fungsi join lainnya yang bisa kalian cari dan baca di internet, seperti pembahasan berikut ini https://www.w3schools.com/sql/sql_join_left.asp. Kemudian dalam contoh kasus lain yang sedikit lebih kompleks, jika tabel yang direlaksikan lebih dari 2 maka cara melakukan joinnya akan seperti ini :

    
    <?php
    $join           = "select * from post join user on user.iduser = post.iduser join kategori on kategori.idkategori = post.idkategori";
    $select         = mysqli_query($koneksi, $join);
    
    ?>
    


    Cara menggabungkan 2 tabel mysql
    join 3 tabel

    Contoh kasus lainnya, jika  tabel 1 berelasi dengan tabel 2, dan tabel 2 berelasi dengan tabel 3 maka untuk mengambil semua datanya seperti ini :

    
    <?php
    $join           = "select * from post 
                        join user on user.iduser = post.iduser 
                        join profile on profile.iduser = user.iduser
                        join kategori on kategori.idkategori = post.idkategori";
    $select         = mysqli_query($koneksi, $join);
    
    ?>
    

    Cara menggabungkan 2 tabel mysql
    join 4 tabel

    Cukup sekian tutorial kalin ini, cara menampilkan dan menghubungkan dua tabel dengan join di php. Semoga dapat membantu, kurang lebihnya saya mohon maaf dan apabila ada pertanyaan, kritik dan saran silahkan tinggalkan di kolom komentar di bawah ini. Sampai jumpa di tutorial berikutnya :)


    Menggabungkan 2 tabel dimana di antara dua tabel datanya bersesuaian?

    JOIN digunakan untuk memilih data dari dua tabel atau lebih. 1. INNER JOIN Menggabungkan dua tabel dimana diantara dua tabel datanya bersesuaian. 2. LEFT JOIN atau LEFT OUTER JOIN Menggabungkan dua tabel dimana diantara dua tabel datanya bersesuaian dan juga semua record pada tabel sebelah kiri.

    Apa itu SQL Union?

    Fungsi UNION pada SQL digunakan untuk menggabungkan dua tabel dalam bentuk baris baru ke bawah dimana field yang di-SELECT antara tabel satu dan lainnya adalah harus sama. Atau sederhananya yaitu untuk menempatkan baris dari kueri satu sama lain dan nilainya distinct/unik.

    Apa itu inner join?

    Inner join menggabungkan data dari dua tabel kapan pun ditemukan nilai mirip dalam bidang umum di kedua tabel.

    Apa itu Inner join dan Left join?

    INNER JOIN: mengembalikan baris ketika ada kecocokan di kedua tabel. LEFT JOIN: mengembalikan semua baris dari tabel kiri, bahkan jika tidak ada kecocokan di tabel kanan. RIGHT JOIN: mengembalikan semua baris dari tabel kanan, bahkan jika tidak ada kecocokan di tabel kiri.