【问题标题】:How do I combine these two queries into a single INSERT INTO?如何将这两个查询组合成一个 INSERT INTO?
【发布时间】:2017-09-27 06:00:44
【问题描述】:

谁能告诉我如何将这两个查询组合成一个 INSERT INTO 查询?

$query1 = "INSERT INTO `monthly_income`(`Year`, `Month`) VALUES (2017, 'September')";
$query2 = "INSERT INTO `monthly_income`(`totalincome`) SELECT SUM(Income) FROM `eventincome` WHERE eventDate BETWEEN '2017-09-01' AND '2017-09-30'";

在这里,我想将所有这些值插入到表“monthly_income”中的一行中。在 Query2 中,我从名为“eventincome”的单独表 生成两个日期之间的总收入。 “monthly_income”表有 [Year, Month, totalincome] 列。并且“eventincome”表具有列 [eventDate, eventTitle, Earnings, Expenses, Income]。那么如何加入这两个查询以在

中使用它

mysqli_query($conn, 参数)

:) PS:我想将这些查询中的这些值设置在同一行中,而不是因为这两个 INSERT INTO 而创建两个单独的行。这就是为什么我想加入/组合/合并(无论如何)这两个查询:)

【问题讨论】:

  • PS:这两个查询在单独运行时工作得非常好,并给出了想要的结果:)
  • 除非您可以修改以便在两行的相同列中设置值,否则它们必须是 2 个单独的 INSERT 语句。
  • @user2486:它不起作用:/
  • 是的,我需要将这些值设置在同一行@flauntster :)
  • @CryWolf95:与此问题无关,但与您删除的另一个问题有关。关于 DATE 和 VARCHAR。 VARCHAR 更改有助于识别问题,但不要将日期存储为 VARCHAR。 DATE 格式可以比 VARCHAR 更容易地进行排序、查询和使用。如果您获得工具或模块,他们将不知道如何管理您的“varchar 中的日期”列。

标签: php mysql sql-server


【解决方案1】:

试试这个

$query2 = "INSERT INTO `monthly_income`(`totalincome`,`Year`, `Month`) SELECT SUM(Income),2017 as Year, 'September' as Month FROM `eventincome` WHERE eventDate BETWEEN '2017-09-01' AND '2017-09-30'";

【讨论】:

  • 非常感谢@RegBes 它有效!! xoxo
【解决方案2】:

将第一个查询中的值作为常量添加到第二个查询中...

"INSERT INTO monthly_income(Year, Month,totalincome) SELECT 2017, 'September',SUM(Income) FROM eventincome WHERE eventDate BETWEEN '2017-09-01' AND '2017-09-3'";

【讨论】:

  • 感谢您的帮助@Nick Fry,我现在也将对此进行测试
猜你喜欢
  • 1970-01-01
  • 2012-11-27
  • 2015-10-08
  • 2014-03-20
  • 1970-01-01
  • 2018-08-07
  • 1970-01-01
  • 1970-01-01
  • 2011-06-28
相关资源
最近更新 更多