sql >> Database teknologi >  >> RDS >> Mysql

Forståelse af Natural Join i SQL

Dette er for langt til en kommentar. Brug ikke naturlige sammenføjninger. Gider ikke lære naturlige joinforbindelser. De er en vederstyggelighed.

Hvorfor? Sammenkædningsbetingelserne er baseret på kolonner med de samme navne . Naturlige sammenføjninger tager ikke engang erklærede udenlandske nøgleforhold i betragtning. Dette kan være ret farligt. Eller -- i mit tilfælde -- fordi næsten alle mine tabeller har CreatedAt og CreatedBy , de er alligevel ubrugelige.

Angiv i stedet join nøgler. I dit tilfælde (fordi du har select * ), den using klausul er mest passende:

SELECT * 
FROM R JOIN
     S
     USING (A, B);

Dette har også den fordel, at nøglerne er eksplicit vist i forespørgslen, hvilket i høj grad reducerer muligheden for fejl.



  1. Sådan gør du SQLites LIKE-operatør case-sensitive

  2. SQL Transponer rækker som kolonner

  3. Hvordan forbinder og henter jeg data fra Google Cloud SQL ved hjælp af PHP?

  4. Nogle ENHVER Aggregerede Transformationer er ødelagte