Pagsamahin ang Dalawang Talahanayan sa SQL

Pagsamahin Ang Dalawang Talahanayan Sa Sql



Sa SQL, ang pagsasama ng talahanayan ay tumutukoy sa proseso ng pagsasama-sama ng data mula sa dalawang magkahiwalay na mga talahanayan sa isang ibinigay na database sa isang yunit batay sa isang karaniwang column o pamantayan. Oo, kung ito ay parang isang mesa, iyon ay kung ano talaga ito.

Ang isang table join o isang table merge ay isang kilalang tampok ng relational database, at ito ay hindi kapani-paniwalang makapangyarihan. Nagbibigay-daan ito sa amin na pagsama-samahin ang impormasyon mula sa maraming mapagkukunan upang lumikha ng mas magkakaugnay at makabuluhang mga insight sa data. Pinapayagan din nito ang mga relational database na maging lubos na nasusukat (hindi nababaluktot) dahil maaari nating hatiin ang data sa mas maliit, mapapamahalaang mga tipak na maaari nating sanggunian sa ibang pagkakataon.

Sa tutorial na ito, tatalakayin natin ang mga batayan ng pagsasama ng talahanayan o pagsasama ng talahanayan. Tingnan natin ang mga sample ng talahanayan sa totoong mundo upang patatagin ang ating kaalaman.







Halimbawang Talahanayan

Bago tayo pumunta sa mundo ng table joins, i-setup natin ang mga basic table na gagamitin natin para sa demonstration purposes.



Isaalang-alang ang dalawang talahanayan na naglalaman ng impormasyon ng mga empleyado at suweldo gaya ng ipinapakita sa mga sumusunod na halimbawang query:



GUMAWA NG MGA empleyado ng TABLE (

employee_id INT AUTO_INCREMENT PRIMARY KEY,

first_name VARCHAR( limampu ),

apelyido VARCHAR( limampu ),

departamento VARCHAR( limampu )

);

Pagkatapos ay maaari naming ipasok ang sample na data sa talahanayan ng empleyado tulad ng ipinapakita sa mga sumusunod na query:





INSERT IN TO employees (first_name, last_name, department) VALUES

( 'Alice' , 'Smith' , 'Human Resources' ),

( 'Bob' , 'Johnson' , 'Marketing' ),

( 'Charlie' , 'Wilson' , 'Pananalapi' ),

( 'David' , 'kayumanggi' , 'Benta' ),

( 'Eva' , 'Davis' , 'Engineering' );

Magpatuloy tayo at lumikha ng isang bagong talahanayan upang iimbak ang impormasyon ng suweldo tulad ng sumusunod:

GUMAWA ng mga suweldo sa TABLE (

salary_id INT AUTO_INCREMENT PRIMARY KEY,

employee_id INT,

suweldo DECIMAL( 10 , 2 ),

start_date DATE,

end_date DATE,

FOREIGN KEY (employee_id) REFERENCES empleyado(employee_id)

);

Idagdag ang insert sample na data sa talahanayan gaya ng sumusunod:



INSERT INTO salaries (employee_id, salary, start_date, end_date) VALUES
( 1 , 60000.00 , '2023-01-01' , '2023-12-31' ),
( 2 , 55000.00 , '2023-01-01' , '2023-12-31' ),
( 3 , 65000.00 , '2023-01-01' , '2023-12-31' ),
( 4 , 58000.00 , '2023-01-01' , '2023-12-31' ),
( 5 , 70000.00 , '2023-01-01' , '2023-12-31' );

Dapat itong magbigay sa amin ng dalawang talahanayan na makakatulong sa amin na ipakita ang konsepto ng pagsasama/pagsamahin ng talahanayan sa SQL.

SQL Table Merge/Table Joins

Tuklasin natin ang iba't ibang uri ng table merge na maaari nating gawin. Sasaklawin natin ang mga pangunahing bagay habang umuunlad tayo sa mga mas advanced.

INNER JOIN

Ang una at pinakakaraniwang uri ng pagsali sa talahanayan sa SQL ay isang INNER JOIN. Ang isang INNER JOIN ay nagpapahintulot sa amin na pagsamahin ang mga row mula sa dalawang talahanayan batay sa isang partikular na kundisyon. Ang ganitong uri ay nagbabalik lamang ng mga hilera kung saan mayroong tugma sa pagitan ng mga talahanayan.

Kunin natin ang mga 'empleyado' at ang mga talahanayan ng 'suweldo' na ginawa natin kanina bilang mga halimbawa. Upang magsagawa ng INNER JOIN sa SQL, ginagamit namin ang INNER JOIN clause gaya ng sumusunod:

PUMILI

e.employee_id,

e.pangalan,

e.apelyido,

e.kagawaran,

s.suweldo

MULA SA

mga empleyado e

INNER JOIN suweldo s NAKA-ON

e.employee_id = s.employee_id;

Sa ibinigay na halimbawang query, gumagamit kami ng INNER JOIN upang pagsamahin ang mga talahanayan ng 'mga empleyado' at 'mga suweldo' sa column na 'employee_id' na umiiral sa parehong mga talahanayan. Ang resultang set ay naglalaman lamang ng mga katugmang row mula sa parehong mga talahanayan.

Ang isang halimbawang output ay ang mga sumusunod:

LEFT OUTER JOIN

Mayroon din kaming LEFT OUTER JOIN na pinagsasama ang lahat ng row mula sa kaliwang table at ang katugmang row mula sa kanang table. Kung walang tugma sa tamang talahanayan, ang pagsali ay gumagamit ng NULL na halaga.

PUMILI

e.employee_id,

e.pangalan,

e.apelyido,

e.kagawaran,

s.suweldo

MULA SA

mga empleyado e

LEFT SUMALI sahod s

NAKA-ON

e.employee_id = s.employee_id;

Sa halimbawang ito, nagsasagawa kami ng LEFT OUTER JOIN upang pagsamahin ang mga talahanayan ng 'mga empleyado' at 'suweldo'. Ang lahat ng mga hilera mula sa talahanayan ng 'mga empleyado' ay kasama at ang mga katugmang hanay mula sa talahanayan ng 'mga suweldo' ay idinagdag. Gayunpaman, ang mga NULL na halaga ay kasama sa column na 'suweldo' para sa mga hindi tugmang row.

SQL UNION

Ang isa pang paraan ng pagsali sa mga talahanayan sa SQL ay ang paggamit ng UNION operator. Binibigyang-daan kami ng operator na ito na pagsamahin ang mga resulta ng dalawa o higit pang mga piling pahayag sa isang set ng resulta.

Ang mga column sa bawat SELECT statement ay dapat na may parehong uri ng data para maging applicable ang unyon.

Ang isang halimbawa ay ang sumusunod:

PUMILI ng employee_id , first_name , last_name , department , NULL AS suweldo

MULA sa mga empleyado e

UNYON

PUMILI ng employee_id , NULL AS first_name , NULL AS last_name , NULL AS department , suweldo

MULA sa mga suweldo s ;

Sa kasong ito, pinagsasama ng isang UNYON ang mga talahanayan ng 'mga empleyado' at 'suweldo'. Pagkatapos ay gagawa kami ng mga NULL na column sa bawat SELECT statement upang matiyak na ang parehong mga talahanayan ay may magkatulad na bilang ng mga column.

Ang mga UNION ay teknikal na karaniwan ngunit maaari silang maging kapaki-pakinabang lalo na kapag kailangan mong pagsamahin ang mga talahanayan na may iba't ibang mga istraktura.

Konklusyon

Sa tutorial na ito, ginalugad namin ang mga batayan ng pagsali/pagsasama ng dalawang talahanayan sa isang set ng resulta. Magandang tandaan na marami pang advanced na mga pagsali na tinatalakay sa post na ito.