【问题标题】:SQL add values based on selectSQL基于select添加值
【发布时间】:2021-06-15 09:47:25
【问题描述】:

我的表 user_group 看起来像这样:

id_group | id_user
100      | 12
110      | 12
120      | 12
110      | 13
100      | 14
...

我想将 id_group 200、300 和 400 添加到已分配 id_group 100 的每个用户 - 选择将是 (SELECT id_user FROM user_group WHERE id_group = '100')

最终表格应如下所示:

id_group | id_user
100      | 12
110      | 12
120      | 12
200      | 12
300      | 12
400      | 12 
110      | 13
100      | 14
200      | 14
300      | 14
...

有人可以帮忙吗?我无法理解它。谢谢:)

【问题讨论】:

  • 用您正在使用的数据库标记您的问题。

标签: sql sql-update sql-insert sql-server-2016


【解决方案1】:

这是一个日历表/联合方法:

SELECT id_group, id_user
FROM user_group
UNION ALL
SELECT t1.id_group, t2.id_user
FROM
(
    SELECT 200 AS id_group UNION ALL
    SELECT 300 UNION ALL
    SELECT 400
) t1
CROSS JOIN (SELECT id_user FROM user_group WHERE id_group = 100) t2
ORDER BY id_user, id_group;

Demo

如果你真的要添加数据,那么使用下面的插入:

INSERT INTO user_group (id_group, id_user)
SELECT t1.id_group, t2.id_user
FROM
(
    SELECT 200 AS id_group UNION ALL
    SELECT 300 UNION ALL
    SELECT 400
) t1
CROSS JOIN (SELECT id_user FROM user_group WHERE id_group = 100) t2;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-25
    • 2014-11-21
    • 1970-01-01
    • 1970-01-01
    • 2018-10-04
    相关资源
    最近更新 更多