我有三个表作为SQLITE3转储。
产品,税,库存
从这些表中准备要导入magento产品的csv文件部分。那部分结束了。
现在必须运行每日脚本,更新库存,税金,修改后的产品详细信息(SKU在任何情况下都不会更改)。
在此更新部分中。 例如,我有12000条记录,其中只有400或1000条记录在库存表,税表,产品表中从最后一天的数据库中更改/修改/更新。其余行将保持不变。
所以我将最后几天的表格添加为 old_products,old_tax,old_inventory 。
并尝试编写sql查询以仅从两组表中提取修改过的记录
(注意:Same Db中提供了两组表。)
请任何人都可以通过比较两组表来帮助我编写一个sql查询来提取修改过的记录。
答案 0 :(得分:1)
这为您提供了所有修改(和产品):
select * from products p inner join old_products o on p.id = o.id
这是修改后的产品:
select * from products where id in (select id old_products)
答案 1 :(得分:1)
我可能会更改此架构。
我会有一个表格,用于存储上次将数据导出为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