2012-03-07 4 views
0

あなたはこれで私を助けることができますクエリを動作させる?mysqlの左結合の制限を使用

このとき、25k行を更新する必要がありますが、これは機能しません。どのように動作するクエリを作成できますか?私は左の結合を削除し、結合のためにINを使用することを考えていました。

+0

この答えをチェックしてください:[LIMITとINへの代替がありますか?](http://stackoverflow.com/questions/7940440を/これに代わるための代替手段/ 7947425#7947425) –

答えて

1

DB_1にあるblacklistにない行を更新しますか?

あなたは試すことができます:

UPDATE 
    DB_1 
SET 
    DB_1.sampling = ? 
WHERE 
    NOT EXISTS 
     (SELECT * 
     FROM blacklist AS blk 
     WHERE blk.email = DB_1.last_email 
    ) 
ORDER BY 
    <something> 
LIMIT 
    <whatever> 

か:

UPDATE 
     DB_1 AS upd 
    JOIN 
     (SELECT t.PK 
      FROM 
        DB_1 AS t 
       LEFT JOIN 
        blacklist AS blk 
         ON blk.email = t.last_email 
      WHERE 
       blk.email IS NULL 
      ORDER BY 
       <something> 
      LIMIT 
       <whatever> 
     ) AS lim 
      ON lim.PK = upd.PK 
SET 
    upd.sampling = ? 
関連する問題