Как вставить несколько записей в таблице А на основе строки записей таблицы В?

0

У меня есть таблица A и таблица B, как показано ниже:

Таблица A

user_id|sub_category_id|category_id|is_removed
5      |201            |2          |false

Таблица B

sub_category_id|category_id
101            |1
102            |1
103            |1
201            |2

Могу ли я узнать, как вставить несколько записей в таблицу A в таблице B, если Category_id равно 1 с user_id равна 5, а is_removed - false? Спасибо.

  • 1
    Можете ли вы показать ожидаемый результат?
Теги:
insert
sql-insert

1 ответ

1
Лучший ответ

Короткий ответ:

с учетом двух описанных таблиц:

insert into A (select 5, sub_category_id, category_id, false from B where category_id = 1);

Детальное объяснение:

Содержание:

select * from A;
+---------+-----------------+-------------+------------+
| user_id | sub_category_id | category_id | is_removed |
+---------+-----------------+-------------+------------+
|       5 |             201 |           2 |          0 |
+---------+-----------------+-------------+------------+

Содержание B:

select * from B;
+-----------------+-------------+
| sub_category_id | category_id |
+-----------------+-------------+
|             101 |           1 |
|             102 |           1 |
|             103 |           1 |
|             201 |           2 |
+-----------------+-------------+

Создать представление:

select 5, sub_category_id, category_id, false from B where category_id = 1;
+---+-----------------+-------------+-------+
| 5 | sub_category_id | category_id | FALSE |
+---+-----------------+-------------+-------+
| 5 |             101 |           1 |     0 |
| 5 |             102 |           1 |     0 |
| 5 |             103 |           1 |     0 |
+---+-----------------+-------------+-------+

Вставка:

insert into A (select 5, sub_category_id, category_id, false from B where category_id = 1);
+---------+-----------------+-------------+------------+
| user_id | sub_category_id | category_id | is_removed |
+---------+-----------------+-------------+------------+
|       5 |             201 |           2 |          0 |
|       5 |             101 |           1 |          0 |
|       5 |             102 |           1 |          0 |
|       5 |             103 |           1 |          0 |
+---------+-----------------+-------------+------------+
  • 0
    Круто @goutnet, спасибо за ясное объяснение!

Ещё вопросы

Сообщество Overcoder
Наверх
Меню