Informatik SQL JOIN?
Was ist JOIN bei SQL genau?
Also ich brauche das, wo mann 2 Tabellen komplett miteinenader verbindet, nciht Left JOIn oder so, sondern nur JOIN.
Könnte mir jemand das erklären? Mit Bezug auf ERD-Tabellen?
LG
Mia
<3333
2 Antworten
Was ist JOIN bei SQL genau?
Es verknüpft Tabellen.
Also ich brauche das, wo mann 2 Tabellen komplett miteinenader verbindet, nciht Left JOIn oder so, sondern nur JOIN.
Das machen die prinzipiell auch. Wenn du aber nen inner join nutzt, dann bekommst du anstatt eines leeren Wertes die Zeile gar nicht mehr zurück. Bei Left/right Join haste immerhin ein NULL.
t1 = PID, Name, Vorname
t2 = PID, Abteilung
SELECT
t1.PID,
t1.Name,
t1.Vorname,
t2.Abteilung
FROM t1
INNER JOIN t2
ON t1.PID = t2.PID
Würde dazu führen, dass du nur die Treffer erhältst, welche in t2 eine Abteilung gepflegt haben.
SELECT title, year
FROM movie JOIN movie_genre JOIN genre
ON movie.id = movie_genre.movie_id AND movie_genre.genre_id = genre.id
WHERE genre.name = "Animation";
unser Lehrer hat so etwas gemacht, kannst du erklären was da passiert?
Letztlich zeigt es alle Titel und das Jahr der Filme an, welche das Genre Animation haben.
Da das Genre in eine separaten Tabelle steckt, wird das reingejoint.
Movie.ID und movie_genre.movie_id werden verknüpft. So erhältst du zu jedem Film die movie_genre.movie_id.
Anhand der nun gewonnenen movie_genre.movie_id wird in der Tabelle genre das entsprechende Genre zur der ID gezogen.
Bei JOIN hast du alle Datensätze der ersten Tabelle kombiniert mit allen Datensätzen der zweiten Tabelle, bei denen die JOIN-Bedingung erfüllt ist.
Im Gegensatz dazu enthält ein LEFT JOIN zusätzlich alle Elemente der linken Tabelle, bei denen die Bedingung nicht erfüllt ist, es also keinen zugehörigen Datensatz in der 2. Tabelle gibt. Dort sind dann die Felder der 2. Tabelle NULL.
T1 S1: 1 2 3 4 5; T2 S1: 1 3 5 7
T1 JOIN T2 USING(S1): 1,1 3,3 5,5
T1 LEFT JOIN T2 USING(S1): 1,1 2,NULL 3,3 4,NULL 5,5
Ja, ich bin 10. und habe nur JOIN