Как «вставить в table1 (col1, col2) значения, выберите col1 из таблицы2, выберите col2 из таблицы3» - PullRequest
0 голосов
/ 22 декабря 2018

Ну, у меня здесь вопрос, если это возможно сделать.У меня есть таблица под названием «клиент» имеет 2 столбца «клиент, источник».

И у меня во 2-й таблице под названием «баланс» есть более 10 столбцов, один из столбцов называется «cname».

И в третьей таблице, называемой info, также есть более 10 столбцов, но только одна строка, содержащая информацию о компании, один из столбцов называется «source».

Таким образом, таблица выглядит следующим образом:

Таблица "баланс":

enter image description here

Информационная таблица:

enter image description here

Итак, я хочу вставить таблицу клиентов из обеих таблиц выше, чтобы результаты были такими:

enter image description here

Я попробовал следующий код, но он выдает ошибку

insert into customer values 
    select cname 
    from balance, select source from info

1 Ответ

0 голосов
/ 22 декабря 2018

Вы просто хотите cross join?

select b.cname, i.source
from balance b cross join
     info i;

Для insert вы должны сделать:

insert into customers (customer, source)
    select b.cname, i.source
    from balance b cross join
         info i;

РЕДАКТИРОВАТЬ (для вашего комментария):

insert into customers (customer, source)
    select b.cname, i.source
    from balance b cross join
         info i
    where not exists (select 1 from customers c where c.customer = b.cname);
...