Сбор данных из двух таблиц, когда одно значение не является частью второй таблицы

#sql #sqlite

#sql #sqlite

Вопрос:

Я изучаю sql и внешние ключи. Теперь я застрял с задачей, которую я не знаю, как выполнить.

Описание: Задача состоит в том, чтобы собрать name_id, имя, фамилию table1 и game_id и game из table2 (см. Таблицы ниже).

Проблема: я бы использовал name_id для сбора данных из обеих таблиц, используя «ГДЕ table1.name_id = table2.name_id», но в этом процессе name_id 3 не появится, потому что он не связан с table2.

Код будет выглядеть как этот отсутствующий name_id 3.

 1       | name1| lastname1
2       | name2| lastname2
  

Оптимальный результат

 1       | name1| lastname1| 1| game1
2       | name2| lastname2| 2| game2
3       | name3| lastname3
  

Вопрос:
Как мне собрать это значение? Это логическая проблема или я должен использовать JOIN, чтобы объединить их?

 table1
name_id | name | lastname
1       | name1| lastname1
2       | name2| lastname2
3       | name3| lastname3

table2
game_id | game | name_id
1       | game1| 1
2       | game2| 2
  

Спасибо!

Комментарии:

1. Вы пробовали использовать левое внешнее соединение?

2. Привет! Да, я пробовал это, но это не позволило бы правильно отсортировать информацию.

Ответ №1:

Вы хотите left join :

 select *
from table1 t1 left join
     table2 t2
     using (name_id);