2

別のテーブルにない1つのテーブルから1セットの行(70kレコードを超える)を取得する必要があります。

表1:レコード数は14000k以上になります表2:レコード数は110k以上になります

だから私のSQLクエリは

SELECT  pre.`id` , pre.`deal_id` , pre.`coupon_code` , pre.`csv` 
FROM `customerorders` AS oc, `precoupon` AS pre 
WHERE oc.`uniqueid` != pre.`coupon_code` 

問題は、それが決して完了できないことです。

ロードを続け、最後にphpmyadminの白いページにこのメッセージが表示されます。

メモリが使い果たされました-ini_setのサイズに関係なくPHPで致命的なエラーが発生しました

長い間SSHで結果が出ない。

クエリに問題がありますか、それともこのために最適化されたクエリがありますか?

特定の列がtable1で使用できない場合は、これらの2番目のテーブルレコードをエクスポートする必要があります。

誰か助けてください。前もって感謝します

4

2 に答える 2

4

次のような左結合で試してください。

SELECT
     pre.`id` ,
     pre.`deal_id` ,
     pre.`coupon_code` ,
     pre.`csv`
FROM `precoupon` AS pre
LEFT OUTER JOIN `customerorders` AS oc
    ON oc.`uniqueid` = pre.`coupon_code`
WHERE oc.uniuqueid IS NULL
于 2012-04-05T07:16:40.297 に答える
1

そのようなことを試してください:

SELECT  id , deal_id , coupon_code, csv 
FROM precoupon
WHERE coupon_code not in (select uniqueid from customerorders)

完全な製品を使用することはあまり良い考えではありません:-)

于 2012-04-05T07:19:14.030 に答える