Mysql
 sql >> база данни >  >> RDS >> Mysql

Избиране на всички елементи в една таблица и свързване с друга таблица, позволявайки нулеви стойности

трябва да използвате left join вместо right join

Различните съединения

inner join :запазете само редовете, където има данни и в двете таблица

left join :запазете всички редове на лявата таблица и добавете каквото е възможно от дясната

right join :запазете всички редове на дясната таблица и добавете възможното от лявата

Лявата таблица винаги е таблицата, която вече имаме, а дясната е тази, с която се свързваме.

За протокола има и cross join който съединява всеки ред в лявата таблица с всеки ред в дясната таблица, но този не се използва много често.

Надявам се всичко това да ви е по-ясно :)

Коригирана заявка

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

Имайте предвид, че това предполага, че колоната member_id е в таблицата за птици, в противен случай можете да запазите условието по следния начин:

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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Връзка с MySQL от .NET с помощта на библиотека SSH.NET

  2. MySQL файл с данни за зареждане - ускорение?

  3. Хеш MySQL схема на база данни

  4. Ръководство за проектиране на база данни за система за управление на инвентара в MySQL

  5. проблем с име на колона "тип" в релсите 3