logo

SQL | BRUKER Klausul

Hvis flere kolonner har samme navn, men datatypene ikke samsvarer, kan NATURAL JOIN-leddet endres med VED HJELP AV klausul for å spesifisere kolonnene som skal brukes for en EQUIJOIN.

  • USING Klausul brukes til å matche bare én kolonne når mer enn én kolonne samsvarer.
  • NATURAL JOIN og USING-klausul utelukker hverandre.
  • Den skal ikke ha en kvalifikator (tabellnavn eller Alias) i de refererte kolonnene.
  • NATURAL JOIN bruker alle kolonnene med samsvarende navn og datatyper for å slå sammen tabellene. USING-klausulen kan brukes til å spesifisere bare de kolonnene som skal brukes for en EQUIJOIN.



EKSEMPLER:

java-streng av array

Vi vil bruke kommandoene nedenfor på følgende basistabeller:

    Ansatt bord



    java listestreng

    Avdelingstabell

    SPØRSMÅL 1: Skriv SQL-spørring for å finne arbeidsstedet til de ansatte. Oppgi også deres respektive ansatt_id og etternavn?



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

Forklaring: Eksemplet som vises føyer seg sammen med DEPARTMENT_ID-kolonnen i ANSATTE og DEPARTEMENTER
tabeller, og viser dermed stedet hvor en ansatt jobber.

Vi vil bruke kommandoene nedenfor på følgende basistabeller:

    Landstabell

    java-matriser

    Plasseringstabell

    SPØRRING 2: Skrive SQL-spørring for å finne location_id, street_address, postal_code og deres respektive landnavn?

     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: Eksemplet som vises, føyer seg sammen med COUNTRY_ID-kolonnen i LOCATIONS og COUNTRIES
tabeller, og viser dermed de nødvendige detaljene.

MERK: Når vi bruker USING-leddet i en join-setning, er ikke join-kolonnen kvalifisert med tabellalias. Ikke alias det selv om den samme kolonnen brukes andre steder i SQL-setningen:

streng sammenlignet med java

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: Siden kolonnen i USING-klausul brukes igjen i WHERE-klausul, gir den dermed en feil til brukeren.