2012-04-05 3 views
2

Мне нужно получить один набор строк (это будет более 70 тыс. Записей) из одной таблицы, которые не находятся в другой таблице.MYSQL выбрать запрос с двумя таблицами - никогда не давать результат

Table1: Количество записей будет более 14000K Table2: Количество записей будет больше, чем 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. Я получаю это сообщение.

памяти исчерпаны - фатальная ошибка на PHP, независимо от размера я не имею в ini_set

Нет результатов в SSH для очень долго.

Есть ли проблемы с запросом или есть оптимизированный запрос для этого?

Мне нужно экспортировать эти записи второй таблицы, если конкретный столбец недоступен в таблице1.

Пожалуйста, помогите мне. Заранее спасибо

ответ

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

+0

Привет, это дает мне длинный набор результатов, даже такой, который недоступен со времени его запроса на соединение, как я могу получить только не в записи. – Elamurugan

+0

@ela я изменяю! = To a = .... с нулем вы выбираете каждую запись, которая не присоединилась! – silly

1

Попробуйте что-то вроде этого:

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

используя полный продукт не очень хорошая идея :-)

+0

Привет, Максим, похоже, это сработает, позвольте мне попробовать. – Elamurugan

Смежные вопросы