Oracle SQL: вставка с помощью SELECT - PullRequest
0 голосов
/ 09 ноября 2019

У меня такой запрос:

insert into book ('book_id', 'category_id', 'book_name', 'buy_price', 'sell_price') values ('B-001, 'BOM-001', 'Tarzan', 200, 300);

возможно ли получить category_id из другой таблицы, которая категория таблица с использованием выберите и условие где category_name = 'adventure' , так что я получу BOM-001 ? Может ли кто-нибудь дать мне образец этого запроса?

спасибо

Ответы [ 2 ]

0 голосов
/ 09 ноября 2019

Есть два способа достичь того, что вы хотите.

Первое: одно значение всегда можно заменить запросом, возвращающим одно значение:

insert into book (book_id, category_id, book_name, buy_price, sell_price)
values ('B-001', 
        (select category_id from category where category_name = 'adventure'),
        'Tarzan',
        200,
        300
       );

Второе: вы можетевставить строки, которые вы выбираете откуда-то:

insert into book (book_id, category_id, book_name, buy_price, sell_price)
select 'B-001', category_id, 'Tarzan', 200, 300
from category where category_name = 'adventure';
0 голосов
/ 09 ноября 2019

Это будет выглядеть так:

insert into book (book_id, category_id, book_name, buy_price, sell_price)
    select ?, c.category_id, ?, ?, ?
    from category c
    where c.category_name = ?;

? - это заполнители для ваших постоянных значений. Обратите внимание, что в именах столбцов для insert.

нет одинарных кавычек.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...