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

At vælge alle elementer i en tabel og slutte sig til en anden tabel, hvilket tillader nuller

du skal bruge left join i stedet for right join

De forskellige joinforbindelser

inner join :behold kun de rækker, hvor der er data i begge tabeller

left join :behold alle rækkerne i den venstre tabel og tilføj, hvad der er muligt fra den højre

right join :behold alle rækkerne i den højre tabel og tilføj, hvad der er muligt fra den venstre

Det venstre bord er altid det bord, vi allerede har, og det højre bord er det, vi slutter os til.

For en god ordens skyld er der også en cross join som forbinder hver række i den venstre tabel med hver række i den højre tabel, men denne bruges ikke så tit.

Jeg håber, at alt dette nu er klarere for dig :)

Korrigeret forespørgsel

select  bird_name, member_id 
from birds  
left join bird_likes on birds.bird_id = bird_likes.bird_id 
where member_id = 2;

Vær opmærksom på, at dette forudsætter, at kolonnen member_id står i fugletabellen, ellers kan du holde tilstanden sådan her :

select  bird_name, member_id 
from birds  
left join bird_likes on 
    birds.bird_id = bird_likes.bird_id and
    bird_likes.member_id = 2;


  1. MySQL tidsstempel vælg datointerval

  2. fjern dublerede rækker baseret på én kolonneværdi

  3. Hvordan installeres oracle instantclient og pdo_oci på ubuntu-maskine?

  4. Maksimal tabelstørrelse for en MySQL-database