0

当我在本地尝试以下操作时没有结果也没有错误:

 select
  a,
  bunch,
  of,
  fields
    from import where id in (
        SELECT distinct t1.id
        FROM import t1 inner join import t2 
        on t1.programid = t2.programid and t1.sku = t2.sku 
        where t1.lastupdated < t2.lastupdated   
    )

此查询是复制旧记录以存档的查询的一部分,这是获取需要移动的数据的部分。

当我在 cpanel 的 phpmydmin 中运行整个过程时,什么也没有发生,没有错误,也没有记录被复制,当我运行只获取数据的状态时,没有任何返回,页面只是停留在加载中,仅此而已。

有超过一百万条记录,需要存档 2/3,我必须使用具有 phpmyadmin 的 cpanel,但认为它不适合运行这样的查询。当与“插入”结合使用时,上述语句将 phpmyadmin 会话锁定 2 小时,但不会复制任何记录。

4

1 回答 1

1

我已经让 phpmyadmin 对它的某些版本的子选择查询执行此操作。

但是试试这个 SQL,它应该做同样的事情,但可能更有效。

SELECT a, bunch, of, fields
    FROM import 
    INNER JOIN (SELECT distinct t1.id
        FROM import t1 inner join import t2 
        on t1.programid = t2.programid and t1.sku = t2.sku 
        where t1.lastupdated < t2.lastupdated ) Sub1
    ON import.id = Sub1.id

编辑添加以下代码以检索每个 programid / sku 没有最新 lastupdated 的记录

SELECT a, bunch, of, fields
FROM import 
LEFT OUTER JOIN (SELECT programid, sku, MAX(lastupdated) AS lastupdated FROM import GROUP BY programid, sku) Sub1
ON import.programid = Sub1.programid AND import.sku = Sub1.sku AND import.lastupdated = Sub1.lastupdated
WHERE Sub1.programid IS NULL
于 2012-12-10T09:59:35.180 回答