logo

SQL | BRUG Klausul

Hvis flere kolonner har de samme navne, men datatyperne ikke stemmer overens, kan NATURAL JOIN-sætningen ændres med VED BRUG AF klausul for at specificere de kolonner, der skal bruges til en EQUIJOIN.

  • USING Klausul bruges til kun at matche én kolonne, når mere end én kolonne matcher.
  • NATURAL JOIN og BRUG Klausul er gensidigt udelukkende.
  • Det bør ikke have en kvalificerer (tabelnavn eller Alias) i de refererede kolonner.
  • NATURAL JOIN bruger alle kolonner med matchende navne og datatyper til at forbinde tabellerne. USING-klausulen kan kun bruges til at specificere de kolonner, der skal bruges til en EQUIJOIN.



EKSEMPLER:

java-streng af array

Vi vil anvende nedenstående kommandoer på følgende basistabeller:

    Medarbejder tabel



    java liste streng

    Afdelingstabel

    FORESPØRGSEL 1: Skriv SQL-forespørgsel for at finde medarbejdernes arbejdssted. Giv også deres respektive medarbejder-id og efternavn?



     Input : SELECT e.EMPLOYEE_ID, e.LAST_NAME, d.LOCATION_ID FROM Employees e JOIN Departments d USING(DEPARTMENT_ID); Output :>

Forklaring: Det viste eksempel slutter sig til kolonnen DEPARTMENT_ID i MEDARBEJDERE og AFDELINGER
tabeller, og viser dermed det sted, hvor en medarbejder arbejder.

Vi vil anvende nedenstående kommandoer på følgende basistabeller:

    Landetabel

    fcfs

    Placeringstabel

    FORESPØRGSEL 2: Skriv SQL-forespørgsel for at finde location_id, street_address, postal_code og deres respektive landenavn?

     Input : SELECT l.location_id, l.street_address, l.postal_code, c.country_name FROM locations l JOIN countries c USING(country_id); Output :>

Forklaring: Det viste eksempel slutter sig til kolonnen COUNTRY_ID i LOCATIONS og COUNTRIES
tabeller, og viser dermed de nødvendige detaljer.

BEMÆRK: Når vi bruger USING-sætningen i en join-sætning, er join-kolonnen ikke kvalificeret med tabelalias. Kald det ikke, selvom den samme kolonne bruges andre steder i SQL-sætningen:

gimp eksport som jpg

Eksempel:

     Input: SELECT l.location_id, l.street_address, l.postal_code, c.country_name FROM locations l JOIN countries c USING(country_id) WHERE c.country_id'IT'; Output:>

Forklaring: Da kolonnen i USING-klausul bruges igen i WHERE-klausul, kaster den en fejl til brugeren.