2012-04-05 64 views
2

我需要从一个不在另一个表中的表中获取一组行(它将超过70k条记录)。MYSQL select table with two tables - never give result

表1:记录数将超过14000K 表2:记录数将超过11万

所以我的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的最后一个白页我得到这个消息。

内存耗尽 - 对PHP不论大小我在的ini_set

在SSH没有结果很长很长的时间致命错误。

查询有任何问题或有任何优化的查询吗?

如果特定列在table1中不可用,我需要导出这些第二个表记录。

请帮助我一个人。在此先感谢

回答

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 
+0

喜,是否有任何理由为WHERE oc.uniuqueid IS NULL?现在让我试试看。 – Elamurugan 2012-04-05 08:45:11

+0

嗨,它给了我一个很长的结果集,即使它加入查询以来不可用,我如何只能得到不记录。 – Elamurugan 2012-04-05 08:47:17

+0

@ela我将!=更改为a = ....用null选择每个没有加入的记录! – silly 2012-04-05 08:54:11

1

尝试类似的东西:使用完整的产品

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

不太好主意:-)

感谢
+0

嗨maksym,似乎这会奏效,让我试试看。 – Elamurugan 2012-04-05 08:47:47