SQL: объединение столбцов из двух таблиц

#sql #sqlite

#sql #sqlite

Вопрос:

У меня есть две таблицы A и B, каждая из которых состоит из столбцов nr и name. Столбец numbers в A является подмножеством столбца numbers в B. Теперь я хотел бы создать новую таблицу C, состоящую из столбцов nr, name_A и name_B, где name_A берется из столбца name в A (если nr существует в A, ‘-‘ в противном случае) и где name_B берется из столбца name в B.

Лучшее, что я смог выяснить на данный момент, это:

 CREATE TABLE C
  SELECT * FROM A
    UNION
  SELECT * FROM B;  
  

Очевидно, что это не дает мне той структуры, о которой я прошу, поэтому новичок в SQL был бы весьма признателен за помощь.

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

1. Подсказка: JOIN будет использоваться для этого.

Ответ №1:

Инструмент, который вы ищете, — это соединение [слева]:

 CREATE TABLE c AS
SELECT       b.nr, COALESCE(a.name, '-') AS name_a, b.name AS b.name
FROM         b
LEFT JOIN    a on b.nr = a.nr