【发布时间】:2021-12-08 13:01:19
【问题描述】:
在 MySQL 中通过SELECT 语句创建临时表后,有什么方法可以将行插入到临时表中?
我有这个按预期工作的查询:
SELECT goldusers_user_ci.user_id, goldusers_users.username, goldusers_user_ci.contact_value
FROM goldusers_users
INNER JOIN goldusers_user_ci
ON goldusers_users.id = goldusers_user_ci.user_id
ORDER BY user_id
这个想法是选择这个查询作为一个临时表并添加一行,如下所示:
SELECT * FROM(
SELECT goldusers_user_ci.user_id, goldusers_users.username, goldusers_user_ci.contact_value
FROM goldusers_users
INNER JOIN goldusers_user_ci
ON goldusers_users.id = goldusers_user_ci.user_id
ORDER BY user_id
) AS DBusers
INSERT INTO DBusers(user_id,username)
VALUES(-1,"All")
但是,我收到语法错误。有没有办法做到这一点?
**编辑:
我相信我实际上需要在选择后进行联合:
***问题是ORDER BY 语句的位置。将其移至底部有效
SELECT goldusers_user_ci.user_id, goldusers_users.username, goldusers_user_ci.contact_value
FROM goldusers_users
INNER JOIN goldusers_user_ci
ON goldusers_users.id = goldusers_user_ci.user_id
UNION ALL
SELECT -1 as user_id, "All" as username, "" as contact_value
ORDER BY user_id
【问题讨论】:
-
语法是
INSERT INTO tablename (columns...) SELECT .... -
查看
INSERT的文档 -
AS DBusers不会创建临时表。 -
@Barmar 是的,也许我不需要临时表。我希望在 select 语句之后向查询中添加一行。
-
然后使用
UNION。
标签: mysql