2012-04-05 11 views
2

Ich brauche eine Reihe von Zeilen (es werden mehr als 70k Datensätze) aus einer Tabelle, die nicht in einer anderen Tabelle sind.MYSQL Abfrage mit zwei Tabellen auswählen - nie geben Ergebnis

Tabelle 1: Anzahl der Datensätze mehr als 14000k Table2 sein: Anzahl der Datensätze wird mehr als 110k

So Abfrage meiner SQL ist

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

Das Problem ist, es nie in der Lage abgeschlossen ist.

Es wurde geladen und am Ende eine weiße Seite auf phpmyadmin bekomme ich diese Nachricht.

Speicher erschöpft - fatale Fehler auf PHP, was Größe i in ini_set habe

Keine Ergebnisse in SSH für lange, lange Zeit.

Gibt es ein Problem mit der Abfrage oder gibt es eine optimierte Abfrage dafür?

Ich muss diese zweite Tabelle Datensätze exportieren, wenn die bestimmte Spalte in Tabelle1 nicht verfügbar ist.

Bitte helfen Sie mir jemand. Vielen Dank im Voraus

Antwort

4

versuchen Sie es mit links schließt sich wie folgt aus:

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

Hallo Dank Gibt es einen Grund für WHERE oc.uniuquid IS NULL? Lass es mich jetzt versuchen. – Elamurugan

+0

Hallo, es gibt mir eine lange Ergebnismenge sogar so viel nicht verfügbar seit seiner Join-Abfrage, wie ich nur nicht in Datensätze gelangen kann. – Elamurugan

+0

@ela ich ändere die! = Zu a = .... mit dem is null wählst du jeden Datensatz, der nicht beigetreten ist! – silly

1

Probieren Sie etwas wie folgt aus:

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

vollständige Produkt verwenden ist nicht sehr gute Idee :-)

+0

Hallo Maksym, scheint das funktioniert, lass mich es versuchen. – Elamurugan