Nou, "beter" is subjectief. Er is hier een bepaalde stijl. Maar ik zal uw vragen rechtstreeks beantwoorden.
- Beiden voeren hetzelfde uit
- Beide zijn ANSI-compatibel.
-
Het probleem met het eerste voorbeeld is dat
-
het is heel gemakkelijk om per ongeluk het kruisproduct af te leiden (omdat het gemakkelijker is om criteria voor deelname weg te laten)
-
het wordt ook moeilijk om de join-criteria te debuggen naarmate je meer en meer tabellen aan de join toevoegt
-
aangezien de syntaxis van de outer join (*=) in oude stijl is verouderd (er is al lang gedocumenteerd dat het onjuiste resultaten oplevert), moet u, wanneer u outer joins moet introduceren, nieuwe stijl en oude joins combineren ... waarom promoten inconsistentie?
-
hoewel het niet bepaald de autoriteit is op het gebied van best practices, raadt Microsoft een expliciete INNER/OUTER JOIN-syntaxis aan
-
met de laatste methode:
- je gebruikt een consistente syntaxis voor joins, ongeacht inner/outer
- het is moeilijker (niet onmogelijk) om per ongeluk het kruisproduct af te leiden
- het isoleren van de deelnamecriteria van de filtercriteria kan het debuggen vergemakkelijken
-
Ik heb het bericht geschreven waar Kevin naar verwees.