mysql - 比较多个Mysql表以查找修改的记录

标签 mysql sql sqlite

我有三个表作为 SQLITE3 转储。

产品、税收、库存

从这些表中准备一个 csv 文件以导入到 magento 产品部分。所以那部分结束了。

现在必须运行一个日常脚本来更新库存、税收、修改后的产品详细信息(SKU 在任何情况下都不会改变)。

在此更新部分。 例如,我有 12000 条记录,因为在最后一天的数据库中,库存表、税表、产品表中可能只有 400 或 1000 条记录发生变化/修改/更新。其余行将保持不变。

所以我将最后几天的表添加为old_products、old_tax、old_inventory

并尝试编写sql查询以仅从两组表中提取修改过的记录

(注意:两组表在同一个数据库中可用。)

谁能帮我写一个sql查询,通过比较两组表来提取修改的记录。

最佳答案

我可能会更改此架构。

我会有一个表,用于存储上次将数据导出到 CSV 的日期:

CREATE TABLE CSVLastExported (
  ProductsExportDate datetime,
  TaxExportDate datetime,
  InventoryExportDate datetime
)

然后我可以在三个表中的每一个中都有一个时间戳列,其中包含最后修改的时间戳。我会有一个触发器来更新该列。

为另一个导出查询修改后的数据就像将 LastModified 列与 CSVLastExported 中的相应列进行比较一样简单:

SELECT p.*
FROM products p
  INNER JOIN CSVLastExport e
    ON p.LastModified > e.ProductsExportDate

关于mysql - 比较多个Mysql表以查找修改的记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5468478/

相关文章:

php - 如何为此 MySQL 查询创建 ActiveRecord 查询?

mysql - SQL:在应用程序或单独的表中存储数据字段选择?

SQLite - 根据列值重复行

Visual Studio 2017 中缺少 SQLite 数据提供程序

mysql - 像 MySQL 触发器但作为一个整体?

mysql - 避免原子事务中的唯一违规

php - 在没有 PHPmyAdmin 的情况下将 .sql 文件导入数据库

sql - 与 UNION 相比,INTERSECT 的优先级是否更高?

objective-c - 使用 SQLite3 将实时收到的许多值写入 iPhone 上的数据库

mysql - 查询最近 30 天但保留没有结果/值的日子