Paghambingin ang Dalawang Talahanayan sa SQL

Paghambingin Ang Dalawang Talahanayan Sa Sql



Ang paghahambing ng data sa SQL ay isang pangkaraniwang gawain na makikita paminsan-minsan ng bawat developer ng database. Sa kabutihang palad, ang paghahambing ng data ay may malawak na iba't ibang mga format tulad ng literal na paghahambing, Boolean na paghahambing, atbp.

Gayunpaman, ang isa sa mga senaryo ng paghahambing ng data sa totoong mundo na maaari mong makaharap ay ang paghahambing sa pagitan ng dalawang talahanayan. Ito ay gumaganap ng isang mahalagang papel sa mga gawain tulad ng data validation, error identification, duplication, o pagtiyak ng integridad ng data.







Sa tutorial na ito, tutuklasin namin ang lahat ng iba't ibang pamamaraan at diskarte na magagamit namin upang ihambing ang dalawang talahanayan ng database sa SQL.



Sample na Setup ng Data

Bago tayo sumisid sa bawat isa sa mga pamamaraan, mag-set up tayo ng pangunahing setup ng data para sa mga layunin ng pagpapakita.



Mayroon kaming dalawang talahanayan na may sample na data tulad ng ipinapakita sa halimbawa.





Halimbawang Talahanayan 1:

Ang sumusunod ay naglalaman ng mga query para sa paglikha ng unang talahanayan at pagpasok ng sample na data sa talahanayan:



GUMAWA NG TABLE sample_tb1 (
employee_id INT PRIMARY KEY AUTO_INCREMENT,
first_name VARCHAR ( limampu ) ,
apelyido VARCHAR ( limampu ) ,
departamento VARCHAR ( limampu ) ,
suweldo DECIMAL ( 10 , 2 )
) ;

INSERT IN TO sample_tb1 ( unang_pangalan, apelyido, departamento, suweldo )
MGA HALAGA
( 'Penelope' , 'Habulin' , 'HR' , 55000.00 ) ,
( 'Mateo' , 'Kulungan' , 'ITO' , 60000.00 ) ,
( 'Jeniffer' , 'Davis' , 'Pananalapi' , 50000.00 ) ,
( 'Kirsten' , 'Fawcet' , 'ITO' , 62000.00 ) ,
( 'Cameron' , 'costner' , 'Pananalapi' , 48000.00 ) ;

Dapat itong lumikha ng isang bagong talahanayan na tinatawag na 'sample_tb1' na may iba't ibang impormasyon tulad ng mga pangalan, departamento, at suweldo.

Ang resultang talahanayan ay ang mga sumusunod:

Halimbawang Talahanayan 2:

Magpatuloy tayo at lumikha ng dalawang sample na talahanayan. Ipagpalagay na ito ay isang backup na kopya ng unang talahanayan. Maaari kaming lumikha ng talahanayan at magpasok ng isang sample na data tulad ng ipinapakita sa sumusunod:

GUMAWA NG TABLE sample_tb2 (
employee_id INT PRIMARY KEY AUTO_INCREMENT,
first_name VARCHAR ( limampu ) ,
apelyido VARCHAR ( limampu ) ,
departamento VARCHAR ( limampu ) ,
suweldo DECIMAL ( 10 , 2 )
) ;
INSERT IN TO sample_tb2 ( unang_pangalan, apelyido, departamento, suweldo )
MGA HALAGA
( 'Penelope' , 'Habulin' , 'HR' , 55000.00 ) ,
( 'Mateo' , 'Kulungan' , 'ITO' , 60000.00 ) ,
( 'Jeniffer' , 'Davis' , 'Pananalapi' , 50000.00 ) ,
( 'Kirsten' , 'Fawcet' , 'ITO' , 62000.00 ) ,
( 'Audrey' , 'Dean' , 'Pananalapi' , 48000.00 ) ;

Dapat itong lumikha ng isang talahanayan at ipasok ang sample na data tulad ng tinukoy sa nakaraang query. Ang resultang talahanayan ay ang mga sumusunod:

Paghambingin ang Dalawang Table Gamit ang Except

Ang isa sa mga pinakakaraniwang paraan ng paghahambing ng dalawang talahanayan sa SQL ay ang paggamit ng operator MALIBAN. Hinahanap nito ang mga row na umiiral sa unang talahanayan ngunit hindi sa pangalawang talahanayan.

Magagamit namin ito upang magsagawa ng paghahambing sa mga sample na talahanayan tulad ng sumusunod:

PUMILI *
MULA sa sample_tb1
MALIBAN
PUMILI *
MULA sa sample_tb2;

Sa halimbawang ito, ibinabalik ng operator EXCEPT ang lahat ng natatanging row mula sa unang query (sample_tb1) na hindi lumalabas sa pangalawang query (sample_tb2).

Paghambingin ang Dalawang Talahanayan Gamit ang Union

Ang pangalawang paraan na magagamit natin ay ang operator ng UNION kasabay ng sugnay na GROUP BY. Nakakatulong ito upang matukoy ang mga tala na umiiral sa isang talahanayan, hindi sa isa pa, habang pinapanatili ang mga duplicate na tala.

Kunin ang query na ipinapakita sa sumusunod:

PUMILI
employee_id,
pangalan,
huling pangalan,
departamento,
suweldo
MULA SA
(
PUMILI
employee_id,
pangalan,
huling pangalan,
departamento,
suweldo
MULA SA
sample_tb1
UNION LAHAT
PUMILI
employee_id,
pangalan,
huling pangalan,
departamento,
suweldo
MULA SA
sample_tb2
) BILANG pinagsamang_data
GROUP BY
employee_id,
pangalan,
huling pangalan,
departamento,
suweldo
NAGKAROON
COUNT ( * ) = 1 ;

Sa ibinigay na halimbawa, ginagamit namin ang operator ng UNION ALL upang pagsamahin ang data mula sa parehong mga talahanayan habang pinapanatili ang mga duplicate.

Pagkatapos ay gagamitin namin ang sugnay na GROUP BY para igrupo ang pinagsamang data ayon sa lahat ng column. Panghuli, ginagamit namin ang HAVING clause upang matiyak na ang mga tala lamang na may bilang ng isa (walang mga duplicate) ang napili.

Output:

Ang pamamaraang ito ay medyo mas kumplikado ngunit nagbibigay ito ng mas mahusay na pananaw habang nakukuha mo ang aktwal na data na nawawala mula sa parehong mga talahanayan.

Paghambingin ang Dalawang Table Gamit ang INNER JOIN

Kung nag-iisip ka, bakit hindi gumamit ng INNER JOIN? Ikaw ay nasa punto. Maaari kaming gumamit ng INNER JOIN upang ihambing ang mga talahanayan at hanapin ang mga karaniwang tala.

Kunin ang sumusunod na query bilang halimbawa:

PUMILI
sample_tb1. *
MULA SA
sample_tb1
INNER JOIN sample_tb2 NAKA-ON
sample_tb1.employee_id = sample_tb2.employee_id;

Sa halimbawang ito, gumagamit kami ng SQL INNER JOIN upang mahanap ang mga talaan na umiiral sa parehong mga talahanayan batay sa isang naibigay na column. Bagama't gumagana ito, maaari itong minsan ay nakakapanlinlang dahil hindi ka sigurado kung ang data ay talagang nawawala o naroroon sa parehong mga talahanayan o sa isa lamang.

Konklusyon

Sa tutorial na ito, natutunan namin ang tungkol sa lahat ng mga pamamaraan at pamamaraan na maaari naming gamitin upang ihambing ang dalawang talahanayan sa SQL.