începând de aici? Această lecție face parte dintr-un tutorial complet în utilizarea SQL pentru analiza datelor. Uită-te la început.în această lecție vom acoperi:
- inner JOIN
- alăturarea tabelelor cu nume de coloane identice
- problemă practică
inner JOIN
în lecția anterioară, ați învățat elementele de bază ale SQL se alătură folosind date despre jucătorii de fotbal din colegiu. Toți jucătorii din tabelulplayers
se potrivesc cu o școală din tabelulteams
. Dar dacă datele nu sunt atât de curate?, Ce se întâmplă dacă există mai multe școli în tabelul teams
cu același nume? Sau dacă un jucător merge la o școală care nu se află în tabelul teams
?
Dacă există mai multe școli în teams
tabelul cu același nume, fiecare dintre aceste rânduri va fi unit și să rânduri de potrivire în players
masă., Revenind la exemplul anterior cu Michael Campanaro, dacă erau trei rânduri în teams
masa unde school_name = 'Wake Forest'
, alăturați-vă interogarea de mai sus va întoarce trei rânduri cu Michael Campanaro.
este adesea cazul în care unul sau ambele tabele care sunt unite conțin rânduri care nu au potriviri în celălalt tabel. Modul în care acest lucru este manipulat depinde de faptul dacă faci un join interior sau un join exterior.
Vom începe cu interior se alătură, care poate fi scris ca JOIN benn.college_football_teams teams
sau INNER JOIN benn.college_football_teams teams
., Interior se alătură elimina rândurile din ambele tabele care nu îndeplinesc condiția alătura stabilite în ON
declarație. În termeni matematici, o îmbinare interioară este intersecția celor două tabele.
prin Urmare, dacă un jucător se duce la o școală care nu e în teams
masă, că jucătorul nu va fi inclusă în rezultat dintr-un inner join., În mod similar, dacă există școli în teams
tabel care nu se potrivesc la orice școlile din players
tabel, aceste rânduri nu vor fi incluse în rezultatele, fie.
alăturarea tabelelor cu nume de coloane identice
când alăturați două tabele, este posibil ca ambele tabele să aibă coloane cu nume identice., În exemplul de mai jos, ambele tabele au coloane numite school_name
:
rezultatele pot susține doar o singură coloană cu un anumit nume—atunci când includ 2 coloane cu același nume, rezultatele vor arăta pur și simplu exact același rezultat set pentru ambele coloane, chiar dacă cele două coloane trebuie să conțină date diferite. Puteți evita acest lucru numind coloanele individual., Se întâmplă că aceste două coloane vor conține de fapt aceleași date, deoarece acestea sunt utilizate pentru cheia join, dar următoarea interogare permite tehnic aceste coloane să fie independente:
ascuți abilitățile SQL
problemă practică
scrieți o interogare care afișează numele jucătorilor, numele școlilor și conferințele pentru școli în Divizia „FBS (Divizia I-a Echipe)”.
încercați să vedeți răspunsul