JOIN vs. INNER JOIN und FULL OUTER JOIN

27

Ich weiß, es gibt einen Unterschied zwischen INNER JOINund FULL OUTER JOIN, ich kann es sehen, aber was ist der Unterschied zwischen den beiden folgenden: JOIN ... ON...und INNER JOIN...ON...und noch immer JOIN...ON...vsFULL OUTER JOIN...ON...

Der Grund dafür ist, dass ich denke, dass nur die Verwendung JOINeine Frage vermasselt, an der ich arbeite und die auf SO gepostet ist. Link zur Frage HIER.

Worin besteht also der syntaktische Unterschied zwischen den eigentlichen Mengenoperationen?

Danke dir,

MCP_infiltrator
quelle
1
"Cross Posting" stellt die gleiche Frage in verschiedenen Foren. Das Posten eines Links ist in Ordnung und wünschenswert.
Choroba
Ok, ich poste einen Link zu der Frage, mein Code ist "return many many duplicates" und macht mich verrückt ... Ich habe noch nicht einmal meinen Morgenkaffee
getrunken
4
@MCP_infiltrator werfen Sie einen Blick auf die wahrscheinlich beste Erklärung da draußen: codinghorror.com/blog/2007/10/…
mkk
Wenn das eigentliche Problem darin besteht, dass Ihr Code zu viele Duplikate zurückgibt, möchten Sie möglicherweise eine andere Frage stellen, bei der dies der wichtigste Punkt ist. Und vielleicht möchten Sie Ihren Code veröffentlichen. Wenn ich in der Vergangenheit Menschen mit doppelten Problemen geholfen habe, liegt dies normalerweise an falschen Verknüpfungsbedingungen oder gelegentlich an einer schlechten Zuordnung zwischen dem SQL-Datenmodell und dem relationalen Datenmodell.
Walter Mitty
Hallo @WalterMitty die Frage ist in SO gepostet, ich denke meine Joins sind das Problem, aber in einem anderen Punkt war ich auch nur neugierig, ich bin erst seit 6 Monaten damit beschäftigt, SQL zu schreiben und mich selbst zu unterrichten, der Link ist in der Frage.
MCP_infiltrator

Antworten:

33

JOINsowie INNER JOINsind die gleichen, die innere Schlüsselwort ist optional als alle gelten als Joins Inner - Joins sein , sofern nicht anders angegeben. Der Unterschied zwischen JOINund FULL OUTER JOINist der gleiche wie der Unterschied zwischen INNER JOINund FULL OUTER JOIN.

An INNER JOINgibt nur dann übereinstimmende Zeilen zurück, wenn eine Zeile in Tabelle A mit vielen Zeilen in Tabelle B übereinstimmt. Die Zeile in Tabelle A wird mit jeder Zeile in Tabelle B wiederholt und umgekehrt.

A FULL OUTER JOINgibt alles zurück, was eine innere Verknüpfung bewirkt, und gibt alle nicht übereinstimmenden Zeilen aus jeder Tabelle zurück.

Ryathal
quelle
5
Danke, das wusste ich nicht JOINund es INNER JOINwaren äquivalente Aussagen.
MCP_infiltrator
7
Es wird empfohlen, INNER JOIN explizit zu schreiben, um Verwirrung zu vermeiden.
Neil