Minggu, 10 Januari 2016

Join tabel SQL

1. INNER JOIN atau JOIN
Inner Join berguna untuk menggabungkan tabel dan harus membutuhkan satu kolom unik yang ada pada primary key maupun foreign key. Apabila ada foreign key maupun primary key yang kosong, penggunaan fungsi ini hanya akan memunculkan data yang foreign key-nya memiliki record yang isi saja.
  Syntax :

SELECT column_name(s)
FROM table1
INNER JOIN table2
ON table1.column_name=table2.column_name;

atau
SELECT column_name(s)
FROM table1
JOIN table2
ON table1.column_name=table2.column_name;
Contoh :

--B=tabel master salesman
SELECT  id, salesname,phone  from mstsales;
1    Mike      0899278371
2    John        0889927812
3    Andrea    0876638812

--A=tabel transaksi salesman
SELECT id, salesid, years, totalitem from transell;
1    1    2011    321
2    1    2012    123
3    1    2013    124
4    1    2014    342
5    2    2011    523
6    2    2012    311
7    2    2013    231
8    2    2014    123
9    3    2011    234
10    3    2012    333
11    3    2013    123

select A.id, A.salesid, B.salesname, A.years,A.totalitem  from transell A INNER JOIN mstsales B ON A.salesid = B.id;
1           1           Mike                                               2011        321
2           1           Mike                                               2012        123
3           1           Mike                                               2013        124
4           1           Mike                                               2014        342
5           2           John                                               2011        523
6           2           John                                               2012        311
7           2           John                                               2013        231
8           2           John                                               2014        123
9           3           Andrea                                             2011        234
10          3           Andrea                                             2012        333
11          3           Andrea                                             2013        123

(11 row(s) affected)

2. LEFT JOIN atau LEFT OUTER JOIN
Left Join merupakan penggabungan tabel dimana data akan ditampilkan secara keseluruhan pada tabel pertama (kiri) namun record pada tabel kedua (kanan) yang kosong akan ditampilkan dengan isi NULL.

Syntax :

SELECT column_name(s)
FROM table1
LEFT JOIN table2
ON table1.column_name=table2.column_name;

atau

SELECT column_name(s)
FROM table1
LEFT OUTER JOIN table2
ON table1.column_name=table2.column_name;

 Contoh :
--B=tabel master salesman
SELECT  id, salesname,phone  from mstsales;
1    Mike      0899278371
2    John        0889927812
3    Andrea    0876638812

--A=tabel transaksi salesman
SELECT id, salesid, years, totalitem from transell;
 1           1           2011        321
2           1           2012        123
3           4           2013        124
4           5           2014        342
5           2           2011        523
6           2           2012        311
7           2           2013        231
8           5           2014        123
9           3           2011        234
10          3           2012        333
11          3           2013        123

select B.id, B.salesid, A.salesname, B.years,B.totalitem  from mstsales A LEFT JOIN transell B ON B.salesid = A.id





id          salesid     salesname                                          years       totalitem
----------- ----------- -------------------------------------------------- ----------- -----------
1           1           Mike                                               2011        321
2           1           Mike                                               2012        123
5           2           John                                               2011        523
6           2           John                                               2012        311
7           2           John                                               2013        231
9           3           Andrea                                             2011        234
10          3           Andrea                                             2012        333
11          3           Andrea                                             2013        123

(8 row(s) affected)



3. RIGHT JOIN atau RIGHT OUTER JOIN
Right Join merupakan penggabungan tabel dimana data akan ditampilkan secara keseluruhan pada tabel kedua (kanan) namun record pada tabel pertama (kiri) yang kosong akan ditampilkan dengan isi NULL.
Syntax :
SELECT column_name(s)
FROM table1
RIGHT JOIN table2
ON table1.column_name=table2.column_name;

atau

SELECT column_name(s)
FROM table1
RIGHT OUTER JOIN table2
ON table1.column_name=table2.column_name;
 
--B=tabel master salesman
SELECT  id, salesname,phone  from mstsales;
1    Mike      0899278371
2    John        0889927812
3    Andrea    0876638812

--A=tabel transaksi salesman
SELECT id, salesid, years, totalitem from transell;
 1           1           2011        321
2           1           2012        123
3           4           2013        124
4           5           2014        342
5           2           2011        523
6           2           2012        311
7           2           2013        231
8           5           2014        123
9           3           2011        234
10          3           2012        333
11          3           2013        123

select B.id, B.salesid, A.salesname, B.years,B.totalitem  from mstsales A RIGHT JOIN transell B ON B.salesid = A.id
1           1           Mike                                               2011        321
2           1           Mike                                               2012        123
3           4           NULL                                               2013        124
4           5           NULL                                               2014        342
5           2           John                                               2011        523
6           2           John                                               2012        311
7           2           John                                               2013        231
8           5           NULL                                               2014        123
9           3           Andrea                                             2011        234
10          3           Andrea                                             2012        333
11          3           Andrea                                             2013        123

(11 row(s) affected)

4.CROSS JOIN

Tidak ada komentar:

Posting Komentar