我需要从一个表中获取一组行(它将超过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中没有特定的列,我需要导出这些第二个表记录。
请帮帮我一个人。提前致谢
答案 0 :(得分: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
答案 1 :(得分:1)
尝试类似的东西:
SELECT id , deal_id , coupon_code, csv
FROM precoupon
WHERE coupon_code not in (select uniqueid from customerorders)
使用完整产品不是一个好主意: - )