SQL - 如何从 Mysql 中的另一个表插入附加到 Id 的新行
Posted
技术标签:
【中文标题】SQL - 如何从 Mysql 中的另一个表插入附加到 Id 的新行【英文标题】:SQL - how to insert new rows attached to Id from another table in Mysql 【发布时间】:2020-10-01 18:16:33 【问题描述】:在这种情况下,我在 mysql DB 中有两个表。第一个是 User 实体,第二个实体是 Notification。这些实体在结构上是相关的。
通知实体如下所示:
id newsletter type user_id
1 0 EMAIL 5
2 1 SMS 5
3 1 FACEBOOK 5
4 1 EMAIL 7
5 0 SMS 7
6 0 FACEBOOK 7
sql 语句应该如何为每个 user_id 插入新行
我尝试了类似的方法,或者首先从该表中获取所有用户,并为每个迭代和插入值。
INSERT INTO db.notification (newsletter, type, user_id) select true, 'GOOGLE', user_id foreach existing user from db.notification
所以输出看起来像:
id newsletter type user_id
1 0 EMAIL 5
2 1 SMS 5
3 1 FACEBOOK 5
4 1 EMAIL 7
5 0 SMS 7
6 0 FACEBOOK 7
7 1 GOOGLE 5
8 1 GOOGLE 7
【问题讨论】:
【参考方案1】:你可以使用insert . . . select
:
INSERT INTO db.notification (newsletter, type, user_id)
select distinct true, 'GOOGLE', user_id
from db.notification ;
【讨论】:
以上是关于SQL - 如何从 Mysql 中的另一个表插入附加到 Id 的新行的主要内容,如果未能解决你的问题,请参考以下文章
将数据行从 C# 中的另一个 sql 表插入到 sql 表中
是否可以从我的 MySQL 数据库中的一个表中的一行中获取一个值并插入到同一数据库中的另一个表中?