Quando hai una query in cui stai partecipando da una chiave esterna non nulla alla tabella esterna, non importa se usi LEFT JOIN
o INNER JOIN
dal punto di vista del risultato (poiché non ci sarà in tutti i casi in cui non corrisponde a qualcosa sulla destra). In un caso come questo che dovrebbe essere preferito, INNER JOIN
o LEFT JOIN
. Mi piacerebbe prendere in considerazione le prestazioni e lo stile / documentazione.
Per me INNER JOIN
è più vicino a quello che vuoi, poiché la caratteristica speciale di LEFT JOIN
non si verifica, ma in molti punti vedo LEFT JOIN
solo come predefinito, a meno che INNER JOIN
non sia esplicitamente necessario quindi sono parzialmente preoccupato che possa far sì che le persone raddoppino a pensare qualcosa che non ha bisogno di pensare.
es. quale dei seguenti dovrebbe essere preferito
FROM dbo.Post p
LEFT JOIN dbo.User u ON p.UserID = u.UserID
o
FROM dbo.Post p
INNER JOIN dbo.User u ON p.UserID = u.UserID
supponendo che UserID sia una chiave esterna per la tabella utente e nessun post può essere creato senza un utente