【问题标题】:mySQL - INSERT query that matches the same records as this SELECT query?mySQL - 与此 SELECT 查询匹配相同记录的 INSERT 查询?
【发布时间】:2013-02-15 06:46:39
【问题描述】:

我有一个选择查询,用于在我的数据库中挑选一段时间未联系的联系人。我想运行一个 INSERT 查询,为使用此选择查询返回的所有记录输入一个重复的注释...问题是我不完全确定该怎么做。

SELECT 查询本身可能有点复杂。我基本上希望选择每个合作伙伴的最新注释,然后只选择在某个日期并没有收到注释的合作伙伴...... SELECT 查询:

SELECT * FROM
(
SELECT * FROM
(
SELECT
partners.partners_id,
partners.CompanyName,
notes.Note,
notes.DateCreated
FROM
notes
JOIN
partners ON notes.partners_id = partners.partners_id
ORDER BY notes.DateCreated DESC
) AS Part1
GROUP BY partners_id
ORDER BY DateCreated ASC
) AS Part2
WHERE
DateCreated <= '2013-01-15'

如何运行只进入与此 SELECT 相同的记录的 INSERT 查询?

插入会输入如下记录:

INSERT INTO notes
(
notes_id,
partners_id,
Note,
CreatedBy,
DateCreated
)
SELECT
UUID(),
partners.partners_id,
'Duplicated message!',
'User',
'2013-02-14'
FROM
partners

【问题讨论】:

  • 您的意思是 UPDATE 查询吗?
  • INSERT INTO table_name(column1, column2,...) SELECT (value1, value2,...) ....

标签: mysql


【解决方案1】:

如果您想在 SQL 中完成这一切,您可以使用 UPDATE 语句。

UPDATE tablename SET note='duplicate' where id in ( your statement here);

请注意,为了使其工作,'id' 需要是来自 'tablename' 的列。然后,您的语句必须返回单列,而不是 *.返回的列必须是让您的更新语句知道要更新“表名”中的哪些行的 id。

【讨论】:

  • 我已经稍微更新了我的问题 - 是否可以使用 UPDATE 输入我想要的记录,如我的示例所示?
  • 我认为你想在你的情况下使用的是 INSERT INTO 语句。这是一个可能有帮助的问题:stackoverflow.com/questions/25969/…
  • 我已经知道如何执行 INSERT INTO 语句,但是我似乎无法弄清楚如何让上面的 INSERT INTO 语句在该 SELECT 语句的结果中起作用。感谢您的帮助。
  • 我刚刚想通了(我觉得自己像个智障)哈哈!我只是没有正确地放入声明的第二部分!
  • 哈哈,是的,总是很简单。我经历过很多这样的掌脸时刻。 picardfacepalm.com
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-02-26
  • 2011-06-22
  • 2016-02-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-10-04
相关资源
最近更新 更多