MYSQL选择带有两个表的查询 - 从不给出结果

时间:2012-04-05 07:13:09

标签: mysql mysql-management

我需要从一个表中获取一组行(它将超过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 个答案:

答案 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)

使用完整产品不是一个好主意: - )

相关问题