У меня есть таблица 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? Спасибо.
Короткий ответ:
с учетом двух описанных таблиц:
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 |
+---------+-----------------+-------------+------------+