Και οι δύο αυτές συνδέσεις θα μου δώσουν τα ίδια αποτελέσματα:
SELECT * FROM table JOIN otherTable ON table.ID = otherTable.FK
vs
SELECT * FROM table INNER JOIN otherTable ON table.ID = otherTable.FK
Υπάρχει κάποια διαφορά μεταξύ των δηλώσεων στην απόδοση ή αλλιώς;
Διαφέρει μεταξύ διαφορετικών υλοποιήσεων της SQL;
Είναι λειτουργικά ισοδύναμες, αλλά η INNER JOIN
μπορεί να είναι λίγο πιο ευανάγνωστη, ειδικά αν το ερώτημα περιλαμβάνει και άλλους τύπους σύνδεσης (π.χ. LEFT
ή RIGHT
ή CROSS
).
Ομοίως με τις OUTER JOINs
, η λέξη "OUTER"
είναι προαιρετική. Η λέξη κλειδί LEFT
ή RIGHT
είναι αυτή που κάνει την JOIN
μια "OUTER" JOIN
.
Ωστόσο, για κάποιο λόγο χρησιμοποιώ πάντα το "OUTER"
όπως στο LEFT OUTER JOIN
και ποτέ το LEFT JOIN
, αλλά ποτέ δεν χρησιμοποιώ το INNER JOIN
, αλλά μάλλον χρησιμοποιώ απλά το "JOIN"
:
SELECT ColA, ColB, ...
FROM MyTable AS T1
JOIN MyOtherTable AS T2
ON T2.ID = T1.ID
LEFT OUTER JOIN MyOptionalTable AS T3
ON T3.ID = T1.ID