【问题标题】:How to insert multiple records in tableA based on tableB records row?如何根据tableB记录行在tableA中插入多条记录?
【发布时间】:2018-08-07 02:48:53
【问题描述】:

我有如下表 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

如果 Category_id 为 1 且 user_id 为 5 且 is_removed 为 false,我可以知道如何根据表 B 将多条记录插入表 A 吗? 谢谢。

【问题讨论】:

  • 你能显示你的预期输出吗?

标签: mysql insert sql-insert


【解决方案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 |
+---------+-----------------+-------------+------------+

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-09-01
    • 2015-10-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多