#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);