Apa beda join function Cross Apply vs Outer Apply dan apa kegunaan Operator Apply?

 on Saturday, October 5, 2019  

Cara bandingkannya sebetulnya mudah, coba jalankan script dibawah ini menggunakan sql server editor
CREATE TABLE Author
(
    id INT PRIMARY KEY,
    author_name VARCHAR(50) NOT NULL
 )

CREATE TABLE Book
(
    id INT PRIMARY KEY,
    book_name VARCHAR(50) NOT NULL,
    price INT NOT NULL,
    author_id INT NOT NULL
)

INSERT INTO Author  
VALUES (1, 'Author1'),(2, 'Author2'), (3, 'Author3'), (4, 'Author4'), (5, 'Author5'), (6, 'Author6'), (7, 'Author7')

INSERT INTO Book  
VALUES (1, 'Book1',500, 1),(2, 'Book2', 300 ,2),(3, 'Book3',700, 1),(4, 'Book4',400, 3),(5, 'Book5',650, 5),(6, 'Book6',400, 3)

CREATE FUNCTION fnGetBooksByAuthorId(@AuthorId int)
RETURNS TABLE
AS
RETURN
( 
SELECT * FROM Book
WHERE author_id = @AuthorId
)


Cross apply sebetulnya cara menggabungkan/join hasil dari fungsi dengan table utama. cross apply atau outer apply hanya di gunakan ketika akan menjoin table dengan fungsi. namun disini apa bedanya?

perhatikan ini, jika menjalankan/memanggil fungsi fnGetBooksByAuthorId Akan menghasilkan 

function akan memilih data buku yang punya author_id =3  yaitu book4 dan book6. jika hasil ini kita join dengan table author maka yang terjadi adalah semua buku akan dipilih sedangkan author nya hanya dipilih jika author_id terdatapat pada hasil fungtion td. mari kita simak gambar berikut :



Sedangkan kalo kita menggunakan outer apply maka yang di pentingkan adalah table author sementara informasi dari hasil fungsi hanya sebagai pelengkap saja, yaitu hasil function melengkapi ID dari table author yang di joinkan. mari simak gambar hasil query aouter apply :




Apa beda join function Cross Apply vs Outer Apply dan apa kegunaan Operator Apply? 4.5 5 .NET-1235 Saturday, October 5, 2019 Cross apply sebetulnya cara menggabungkan/join hasil dari fungsi dengan table utama. cross apply atau outer apply hanya di gunakan ketika akan menjoin table dengan fungsi. namun disini apa bedanya? Cara bandingkannya sebetulnya mudah, coba jalankan script dibawah ini menggunakan sql server editor CREATE TABLE Author ( id INT PRI...


No comments:

Post a Comment

Copyright © .Net-1235. All Rights Reserved.