mysql - SQL - 如何从一个表中获取数据并将其插入到另一个表中

标签 mysql sql

我正在尝试遍历我的用户表,如果排名列是某个值,那么我想在消息表中插入一行,其中一列“to”是用户的用户名列表,插入行中的其余列需要是预定义的值。我在完成这项工作时遇到问题 - 有什么帮助吗?

MySQL配置:(需要的那些)

用户表:

id|username|rank

消息表:

id|to|from|body|subject

(to需要来自users表,from,body,和subject 需要是预定义的字符串

我试图弄清楚这样的事情,但这并不是我需要它做的全部。我从另一个与此类似的 Stack Overflow 问题中获取了这段代码并对其进行了修改。

INSERT INTO `messages` (`from`,`to`,`subject`,`body`)  
SELECT `id`,`rank`
  FROM `users`
 WHERE `rank`='Super'

最佳答案

您可以使用用单引号括起来的字符串文字作为列值。将它们与 INSERT INTO...SELECT 语句的 SELECT 部分返回的行的实际列值混合是安全的。

INSERT INTO `messages` (`from`, `to`, `subject`, `body)
  SELECT 
   /* single-quote string literals to use them in the INSERT INTO...SELECT */
   'Predefined string From',
   /* Intermixed with column values from the rows returned by the SELECT */
   `username`,
   'Predefined string subject',
   'Predefined string body'
  FROM `users`
  WHERE `rank`='Super'

关于mysql - SQL - 如何从一个表中获取数据并将其插入到另一个表中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13484741/

相关文章:

mysql - 由于外键约束导致的延迟插入

sql - For loop postgres over multiple tables

mysql - MySQL 每小时平均发帖数?

mysql - 比较两个表的数据,将共同数据存储在第三个表中,否则存储在第四个表中

mysql - 如何使用 SQL 查询表以给出 ID 的实例数?

列值的 SQL 动态总和

MySQL 未在 XAMPP 上启动

javascript - 在文本框中写入后动态插入占位符

MySQL通过自定义条件获取相关数据

php - 将php日期转换为mysql格式