SQL INNER JOIN


copas dari http://tinawati.blogspot.com/2011/06/sql-inner-join-join-kata-kunci-yang.html

Rabu, 08 Juni 2011

SQL INNER JOIN


SQL INNER JOIN

JOIN kata kunci yang digunakan dalam pernyataan SQL untuk melakukan query data dari dua atau lebih tabel, yang didasarkan pada hubungan antara kolom-kolom tertentu dalam tabel ini.

Tabel dalam database sering berhubungan satu sama lain dengan kunci.

Sebuah primary key adalah kolom/field  (atau kombinasi dari kolom/field) dengan nilai unik untuk setiap baris. Setiap nilai kunci primer harus unik di dalam tabel (tidak boleh ada nilai field kuncinya sama). Tujuannya adalah untuk mengikat data bersama-sama, di meja, tanpa mengulang semua data dalam setiap tabel.

Buat Database Latihan_nim
Buat Tabel Person
Field
Type
Size/Panjang
Keterangan
P_Id
Char
1
Primary Key
LastName
Varchar
15

FirstName
Varchar
15

Address
Varchar
30

City
Varchar
20


Buat Tabel Orders
Field
Type
Size/Panjang
Keterangan
O_Id
Char
1
Primary Key
OrderNo
Int


Jml
Int


Harga
Int


P_Id
Char
1



Lihat pada tabel “Person” berikut:

P_Id
LastName
FirstName
Address
City
1
Hansen
Ola
Timoteivn 10
Sandnes
2
Svendson
Tove
Borgvn 23
Sandnes
3
Pettersen
Kari
Storgt 20
Stavanger

Perhatikan bahwa field/kolom "P_Id" adalah kunci utama dalam tabel "Person". Ini berarti bahwa tidak ada dua baris record dapat memiliki P_Id yang sama. P_Id akan membedakan dua orang bahkan jika mereka memiliki nama yang sama.
Kemudian kita memiliki tabel “Orders” berikut:
O_Id
OrderNo
Jml
Harga
P_Id
1
77895
2
30000
3
2
44678
1
20000
3
3
22456
3
10000
1
4
24562
4
15000
1
5
34764
5
25000
15

Perhatikan bahwa kolom/field "O_Id" adalah kunci utama dalam tabel "Pegawai" dan kolom/field "P_Id" mengacu pada orang-orang dalam tabel "Person" tanpa menggunakan nama mereka.

Perhatikan bahwa hubungan antara dua tabel di atas adalah kolom/field "P_Id".
Sebelum  kita melanjutkan dengan contoh-contoh, kami akan membuat daftar jenis JOIN yang bisa anda gunakan, dan perbedaan-perbedaannya.
1.INNER JOIN

INNER JOIN: hanya akan menampilkan baris untuk data yang memiliki nilai yang sama pada field kunci dengan tabel yang berelasi.

Sintax dari SQL INNER JOIN

SELECT table_name.column_name...
FROM table_name1
INNER JOIN table_name2
ON table_name1.column_name=table_name2.column_name
Order By table_name.column_name
Catatan : INNER JOIN sama dengan JOIN.

Contoh SQL INNER JOIN


Tabel  "Person" :

P_Id
LastName
FirstName
Address
City
1
Hansen
Ola
Timoteivn 10
Sandnes
2
Svendson
Tove
Borgvn 23
Sandnes
3
Pettersen
Kari
Storgt 20
Stavanger

Tabel "Orders" :

O_Id
OrderNo
Jml
Harga
P_Id
1
77895
2
30000
3
2
44678
1
20000
3
3
22456
3
10000
1
4
24562
4
15000
1
5
34764
5
25000
15

Sekarang kita ingin membuat daftar semua orang dengan perintah. Kita menggunakan SELECT berikut:

Tampilkan Sebagai Berikut :

Field
Table
LastName
Person
FirstName
Person
P_Id
Orders




SELECT Person.LastName, Person.FirstName, Orders.OrderNo
FROM Person
INNER JOIN Orders
ON Person.P_Id=Orders.P_Id


Hasil-set akan terlihat seperti ini:
LastName
FirstName
OrderNo
Hansen
Ola
22456
Hansen
Ola
24562
Pettersen
Kari
77895
Pettersen
Kari
44678

Dari hasil join dapat dilihat yang tampil hanya jika nilai pada field kunci tabel “Person” terdapat pada tabel “Order”.
Tampilkan Sebagai Berikut:

Field
Table
LastName
Person
Address
Person
Jml
Orders
Harga
Orders
Total
=Jml*Harga

SELECT Person.LastName, Person.Address,Orders.Jml,
Order.Harga,(Jml*Harga)As Total
FROM Person
 INNER JOIN Orders
ON Person.P_Id=Orders.P_Id





Tampilkan Sebagai Berikut:
Field
Table
LastName
Person
Address
Person
OrderNo
Orders
Jml
Orders
Harga
Orders
Total
Ekspressi
Diskon
Ekspressi
Bayar
Ekspressi

Ketentuan Ekspressi:
  1. Total     : Jml*Harga
  2. Diskon    : Jika jml>4,maka diskon 10% dari harga, jika jml>2,maka diskon 5% dari harga, selain itu tidak dapat diskon.
  3. Bayar     : Total-Diskon



SELECT Person.LastName, Person.Address,Orders.OrderNo,Orders.Jml,Order.Harga,
(Jml*Harga)As Total,
if(Jml>4,10/100*Harga,if(Jml>2,5/100*Harga,0))As Diskon, (Jml*Harga)-
if(Jml>4,10/100*Harga,if(Jml>2,5/100*Harga,0)))As Bayar
FROM Person
 INNER JOIN Orders
ON Person.P_Id=Orders.P_Id

Subscribe to receive free email updates:

1 Response to "SQL INNER JOIN"

  1. dfgdfg
    http://www.kaskus.co.id/thread/000000000000000010942811/-

    ReplyDelete