Menggunakan sintaks SELECT 5 di ADO
Penulis:Eve Cole
Waktu Pembaruan:2009-05-30 19:54:26
Bergabung
Koneksi GABUNG menggabungkan catatan bidang dalam dua tabel, termasuk tiga jenis:
Rumus operasi INNER JOIN: menggabungkan dan menggabungkan catatan bidang dalam dua tabel.
Rumus operasi LEFT JOIN: menggabungkan dan menggabungkan catatan lapangan dalam dua tabel, dan akan menyertakan semua catatan di tabel kiri LEFT JOIN.
Rumus operasi GABUNG KANAN: menggabungkan dan menggabungkan catatan bidang dalam dua tabel, dan akan menyertakan semua catatan dalam tabel di sisi kanan GABUNG KANAN.
INNER JOIN menyetel ekspresi operasi yang terkait dengan dua tabel untuk menghubungkan dan menggabungkan catatan bidang dalam dua tabel.
Sintaks INNER JOIN adalah sebagai berikut:
DARI Tabel 1 INNER JOIN Tabel 2 PADA Tabel 1. Operator Perbandingan Field 1 Tabel 2. Field 2
Field yang digunakan untuk menghubungkan dua tabel, misalnya [Tabel 1. Field 1 = Tabel 2. Field 2], harus mempunyai tipe field yang sama, namun nama field tidak harus sama.
Misalnya, tipe kolom AutoNumber bisa dihubungkan ke tipe kolom Panjang, namun tipe kolom Integer Tunggal tidak bisa dihubungkan ke tipe kolom Integer Ganda.
Operator perbandingan dapat berupa =, <, >, <=, >=, atau <>.
Bidang yang dihubungkan dengan JOIN tidak boleh berisi jenis bidang MEMO atau jenis objek OLE, jika tidak, kesalahan akan terjadi.
Dalam ekspresi GABUNG, beberapa klausa ON dapat dihubungkan:
PILIH bidang
DARI tabel 1 INNER JOIN tabel 2
PADA Tabel 1. Bidang 1 Tabel operator perbandingan 2. Bidang 1 DAN
PADA Tabel 1. Bidang 2 Tabel operator perbandingan 2. Bidang 2) OR
PADA tabel 1. kolom 3 operator pembanding tabel 2. kolom 3)
Ekspresi GABUNG dapat disarangkan:
PILIH bidang
DARI TABEL 1 GABUNG DALAM
(Tabel 2 INNER JOIN [( ]Tabel 3
[INNER GABUNG [( ] tabel x [INNER GABUNG ...)]
PADA Tabel 3. Bidang 3 Tabel operator perbandingan x. Bidang x)]
PADA Tabel 2. Bidang 2 Tabel operator pembanding 3. Bidang 3)
PADA Tabel 1. Bidang 1 Tabel operator pembanding 2. Bidang 2
Dalam INNER JOIN, LEFT JOIN atau RIGHT JOIN yang disarangkan dapat disertakan, tetapi dalam LEFT JOIN atau RIGHT JOIN, INNER JOIN yang disarangkan tidak dapat disertakan.
Mari kita lihat contoh penggunaan perintah SQL ini dalam program ASP.
Anda dapat menggunakan Inner Join...On untuk menggabungkan record dalam dua tabel. Misalnya program ASP rs26.asp adalah sebagai berikut, [Pilih Kode Penjualan, Nama Produk, Harga Produk, Jumlah Penjualan Inner Join Product On Product. Code = Sales.Code], gunakan Inner Join...On untuk mengatur rumus perhitungan yang terkait dengan dua tabel, dan menggabungkan record dalam dua tabel:
<%
Setel koneksi1 = Server.CreateObject("ADODB.Connection")
conn1.Buka "DBQ="& Server.MapPath("ntopsamp.mdb") &";Driver={Microsoft Access Driver (*.mdb)};DriverId=25;FIL=MS Access;"
Setel rs3 = Server.CreateObject("ADODB.Recordset")
sql = "Pilih Sales.Code, Product.Name, Product.Price, Sales.Quantity dari SalesInner Gabung ProductOn Product.Code = Sales.Code"
rs3.Buka sql,sambungan1,1,1,1
%>
<TABEL COLSPAN=8 CELLPADDING=5 BATAS=0>
<TR>
<TD ALIGN=CENTER BGCOLOR="#800000"><FONT COLOR="#FFFFFF">Kode</FONT></TD>
<TD ALIGN=CENTER BGCOLOR="#800000"><FONT COLOR="#FFFFFF">Nama</FONT></TD>
<TD ALIGN=CENTER BGCOLOR="#800000"><FONT COLOR="#FFFFFF">Harga</FONT></TD>
<TD ALIGN=CENTER BGCOLOR="#800000"><FONT COLOR="#FFFFFF">Jumlah</FONT></TD>
</TR>
<% Lakukan selagi tidak rs3.EOF %>
<TR>
<TD BGCOLOR="f7efde" ALIGN=CENTER><%= rs3(0)%></TD>
<TD BGCOLOR="f7efde" ALIGN=CENTER><%= rs3(1)%></TD>
<TD BGCOLOR="f7efde" ALIGN=CENTER><%= rs3(2)%></TD>
<TD BGCOLOR="f7efde" ALIGN=CENTER><%= rs3(3)%></TD>
</TR>
<%
rs3.MoveNext
Lingkaran
rs3.Tutup
%>
</TABEL>
Program ASP di atas rs26.asp menggunakan browser di sisi klien untuk menelusuri hasil eksekusi dan menampilkan catatan dalam dua tabel gabungan. Karena tidak ada bidang nama dan bidang harga di tabel penjualan, [Inner Join Product On Product. Kode = Kode Penjualan] Cari data pada kolom nama dan kolom harga pada tabel produk.
Contoh di atas menggunakan sintaks Inner Join:
Pilih Sales.Code, Product.Name, Product.Price, Sales.Quantity dari SalesInner Gabung ProductOn Product.Code = Sales.Code
Hasilnya sama seperti berikut ini dengan menggunakan Where:
Pilih Sales.Code, Product.Name, Product.Price, Sales.Quantity dari Sales, ProductWhere Product.Code = Sales.Code
GABUNG KIRI/KANAN GABUNG
Koneksi INNER JOIN menggabungkan catatan bidang terkait dalam dua tabel, yang merupakan koneksi internal.
Gunakan operasi LEFT JOIN: untuk membuat gabungan luar kiri. Selain mendapatkan catatan bidang terkait di kedua tabel, LEFT JOIN juga akan menyertakan semua catatan di tabel kiri LEFT JOIN, terlepas dari apakah ada catatan yang cocok di tabel kanan.
Gunakan operasi GABUNG KANAN: Buat koneksi luar kanan. Selain mendapatkan catatan bidang terkait di kedua tabel, RIGHT JOIN juga akan menyertakan semua catatan di tabel kanan RIGHT JOIN, terlepas dari apakah ada catatan yang cocok di tabel kiri.
Misalnya, [Sales LEFT JOIN Products] dapat memilih semua catatan penjualan. [Jual Produk GABUNG KANAN] Semua catatan produk dapat dipilih.
Misalnya, menggunakan Left Join...On tidak hanya memperoleh catatan bidang terkait di dua tabel, tetapi juga mencakup semua catatan di tabel kiri LEFT JOIN. Program ASP rs26.asp adalah sebagai berikut, [Pilih penjualan. kode, nama produk, .Harga produk, Penjualan.Jumlah dari SalesLeft Join ProductOn Product.Code = Sales.Code], menggunakan Left Join mencakup semua catatan dalam tabel penjualan di sebelah kiri LEFT JOIN:
<%
Setel koneksi1 = Server.CreateObject("ADODB.Connection")
conn1.Buka "DBQ="& Server.MapPath("ntopsamp.mdb") &";Driver={Microsoft Access Driver (*.mdb)};DriverId=25;FIL=MS Access;"
'conn1.Buka "driver={SQL Server};server=(Lokal);uid=sa;pwd=;database=NtopSamp"
Setel rs3 = Server.CreateObject("ADODB.Recordset")
sql = "Pilih Sales.Code, Product.Name, Product.Price, Sales.Quantity dari SalesLeft Gabung ProductOn Product.Code = Sales.Code"
rs3.Buka sql,sambungan1,1,1,1
%>
<TABEL COLSPAN=8 CELLPADDING=5 BATAS=0>
<TR>
<TD ALIGN=CENTER BGCOLOR="#800000"><FONT COLOR="#FFFFFF">Kode</FONT></TD>
<TD ALIGN=CENTER BGCOLOR="#800000"><FONT COLOR="#FFFFFF">Nama</FONT></TD>
<TD ALIGN=CENTER BGCOLOR="#800000"><FONT COLOR="#FFFFFF">Harga</FONT></TD>
<TD ALIGN=CENTER BGCOLOR="#800000"><FONT COLOR="#FFFFFF">Jumlah</FONT></TD>
</TR>
<% Lakukan selagi tidak rs3.EOF %>
<TR>
<TD BGCOLOR="f7efde" ALIGN=CENTER><%= rs3(0)%></TD>
<TD BGCOLOR="f7efde" ALIGN=CENTER><%= rs3(1)%></TD>
<TD BGCOLOR="f7efde" ALIGN=CENTER><%= rs3(2)%></TD>
<TD BGCOLOR="f7efde" ALIGN=CENTER><%= rs3(3)%></TD>
<%
rs3.MoveNext
Lingkaran
rs3.Tutup
%>
</TABEL>
Untuk program ASP rs26.asp di atas, gunakan browser di sisi klien untuk menelusuri hasil eksekusi. Tampilan berisi semua catatan dalam tabel penjualan di sebelah kiri LEFT JOIN Karena tidak ada kolom nama dan kolom harga di dalamnya tabel penjualan, catatan penjualan dengan kode nomor 4, melalui [Sales Left Join Product On Product.Code = Sales.Code], data bidang nama dan bidang harga tabel produk ditemukan bidang nama dan bidang harga tidak ditemukan.
Menggunakan Right Join...On tidak hanya memperoleh record field terkait di dua tabel, tetapi juga mencakup semua record di tabel kanan RIGHT JOIN. Misalnya, program ASP rs26.asp adalah sebagai berikut, [Pilih Penjualan .Code, Product.Name, Product .Price, Sales.Quantity dari Sales Right Join Product On Product.Code = Sales.Code], menggunakan Right Join mencakup semua record pada tabel produk di sebelah kanan RIGHT JOIN:
<%
Setel koneksi1 = Server.CreateObject("ADODB.Connection")
conn1.Buka "DBQ="& Server.MapPath("ntopsamp.mdb") &";Driver={Microsoft Access Driver (*.mdb)};DriverId=25;FIL=MS Access;"
Setel rs3 = Server.CreateObject("ADODB.Recordset")
sql = "Pilih Sales.Code, Product.Name, Product.Price, Sales.Quantity dari SalesRight Gabung ProductOn Product.Code = Sales.Code"
rs3.Buka sql,sambungan1,1,1,1
%>
<TABEL COLSPAN=8 CELLPADDING=5 BATAS=0>
<TR>
<TD ALIGN=CENTER BGCOLOR="#800000"><FONT COLOR="#FFFFFF">Kode</FONT></TD>
<TD ALIGN=CENTER BGCOLOR="#800000"><FONT COLOR="#FFFFFF">Nama</FONT></TD>
<TD ALIGN=CENTER BGCOLOR="#800000"><FONT COLOR="#FFFFFF">Harga</FONT></TD>
<TD ALIGN=CENTER BGCOLOR="#800000"><FONT COLOR="#FFFFFF">Jumlah</FONT></TD>
</TR>
<% Lakukan selagi tidak rs3.EOF %>
<TR>
<TD BGCOLOR="f7efde" ALIGN=CENTER><%= rs3(0)%></TD>
<TD BGCOLOR="f7efde" ALIGN=CENTER><%= rs3(1)%></TD>
<TD BGCOLOR="f7efde" ALIGN=CENTER><%= rs3(2)%></TD>
<TD BGCOLOR="f7efde" ALIGN=CENTER><%= rs3(3)%></TD>
<%
rs3.MoveNext
Lingkaran
rs3.Tutup
%>
</TABEL>
Untuk program ASP rs26.asp di atas, gunakan browser di sisi klien untuk menelusuri hasil eksekusi. Tampilan berisi semua catatan dalam tabel produk di sisi kanan GABUNG KANAN. Karena tidak ada bidang kuantitas di produk tabel, catatan produk dengan kode nomor 4 dilewatkan [ Hak Penjualan Gabung Produk Pada Produk.Kode = Kode Penjualan] Data pada bidang kuantitas pada tabel penjualan ditemukan. Untuk kode lain, data pada bidang kuantitas tidak ditemukan ditemukan.
Sudah tahu?