Как выбрать Distinct UNION с приоритетом 1-й таблицы - PullRequest
0 голосов
/ 18 октября 2018

Как написать отдельный запрос на объединение с игнорированием одного столбца во всех таблицах.

Я хотел бы выбрать данные из двух таблиц с одинаковым именем поля и вставить в 3-ю таблицу, но данные должны быть уникальными, кромеодно поле (должен учитываться номер 1-й строки таблицы)

CREATE TABLE table_a
(
    id INTEGER ,
    name TEXT,
    rownumber TEXT
) ;
CREATE TABLE table_b
(
    id INTEGER ,
    name TEXT,
    rownumber TEXT
) ;

CREATE TABLE table_c
(
    id INTEGER,
    name TEXT,
    rownumber TEXT
) ;

INSERT INTO 
   table_a
   (id, name, rownumber)
VALUES
   (1001, 'Alex' , '111'),
   (1002, 'John' , '112'),
   (1003, 'Max'  , '113'),
   (1004, 'Joly'  , '114'), 

INSERT INTO 
   table_b
   (id, name, rownumber)
VALUES
   (1005, 'Angila', '211'),
   (1002, 'John'  , '212'),
   (1006, 'Tim'   , '213'), 

Ожидаемый Table_c должен быть уникальным id и name из "table_a" + "table_b" и "rowversion"следует рассмотреть из таблицы_a

Результат как: -

   (1001, 'Alex' , '111'),
   (1002, 'John' , '112'),  // From 1st table
   (1003, 'Max'  , '113'),
   (1004, 'Joly'  , '114'),

   (1005, 'Angila', '211'),
   (1006, 'Tim'   , '213'), 

1 Ответ

0 голосов
/ 18 октября 2018

Как насчет использования not exists?

select a.*
from table_a a
union all
select b.*
from table_b b
where not exists (select 1 from table_a a where a.id = b.id and a.name = b.name);
...