sql >> Database >  >> RDS >> Mysql

Alle items in één tabel selecteren en deelnemen aan een andere tafel, waarbij nulls worden toegestaan

je moet left join gebruiken in plaats van right join

De verschillende joins

inner join :bewaar alleen de rijen met gegevens in beide tabellen

left join :bewaar alle rijen van de linkertabel en voeg toe wat mogelijk is vanaf de rechter

right join :bewaar alle rijen van de rechtertabel en voeg toe wat mogelijk is vanaf de linker

De linkertafel is altijd de tafel die we al hebben en de rechtertafel is degene waarmee we meedoen.

Voor de goede orde, er is ook een cross join die elke rij in de linkertabel verbindt met elke rij in de rechtertabel, maar deze wordt niet vaak gebruikt.

Ik hoop dat dit nu allemaal duidelijker voor je is :)

Gecorrigeerde zoekopdracht

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

Houd er rekening mee dat dit ervan uitgaat dat de kolom member_id staat in de vogeltabel, anders kun je de toestand als volgt houden:

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 - Hoe meerdere update-query's op één regel uitvoeren?

  2. MySql Single Table, Selecteer laatste 7 dagen en voeg lege rijen toe

  3. Dubbelzinnige kolomnaamfout op een bepaalde server

  4. Maak een gekoppelde server in SQL Server (T-SQL-voorbeeld)