mysql - 将所有这些命令包含在一个大的 MySQL 语句中?

标签 mysql sql

对于一项作业,我必须在一个大的 MySQL 语句中包含所有这些关键字:select、from、where、group by、order by、inner join、insert、update、delete。

显然,除了最后 3 个之外的所有内容都很容易包含在 1 个语句中。

但是,我在 2 个 SQL 语句(一个使用 select 等,另一个使用 insert)上使用 union 时遇到问题。

例如,我有:

SELECT * FROM Database 
INNER JOIN (O_Database INNER JOIN ...) 
ON ...
GROUP BY ...
ORDER BY ...
UNION 
INSERT INTO Database (...) VALUES (...)

但是我以这种方式使用 UNION 时遇到了错误。是否有一个包含所有这些关键字的简单语句?

最佳答案

我认为没有解决方案可以将 DELETE 放在那里。您可以构建一个包含所有所需内容的 select 语句,并在 INSERT ON DUPLICATE KEY UPDATE 语句中使用它。但删除?不可以。在 Oracle 中,可以通过使用 MERGE 语句来实现这一点,但这在 MySQL 中不可用。所以我想,给定的任务没有解决方案。

INSERT INTO ...
SELECT ... -- using from, where, group by, order by, and inner join here
ON DUPLICATE KEY 
UPDATE ...

关于mysql - 将所有这些命令包含在一个大的 MySQL 语句中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22840061/

相关文章:

php - 在 MySQL 中存储页面浏览量的最佳方式是什么?

java - 在JAVA中捕获SQL错误?

mysql - 在与 localhost 不同的域中查询 Web 项目中的 mysql 数据库不会检索到任何数据

Mysql - 连接多个 ID 并连接连接列?

php - 我更新时记录没有改变。我的 WHERE 子句有什么问题?

mysql - Order By multiple - 对于 wordpress 属性

java.sql.SQLException : no such column: after accepting sql query

php - 为什么这个 select for update 示例有效?

mysql - 使用 MVC Asp.net 删除 MySql 中的数据超时

sql - 通过在同一日期或最接近的先前日期(不仅仅是完全匹配)加入来合并两个表