Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Wo ist der Fehler in meinem SQL-Code?

JOIN t2 ON t1.wid = t1.wid

hast du das gemeint? oder meinst du wirklich t1.wid =t2.wid? In diesem Fall möchten Sie einen linken Join.

BEARBEITEN

Okay, du hast es also behoben. Das zeigt keine Ergebnisse, es sei denn, es gibt Zeilen in t2, die eine Breite haben, die mit einer Zeile in t1 mit derselben Breite übereinstimmt.

Wenn Sie Ergebnisse wünschen, ändern Sie es wie folgt:

'SELECT * FROM t1
          LEFT JOIN t2 ON t1.wid = t2.wid
          WHERE t2.wid IS NULL
          LIMIT ' . $number;

NÄCHSTE BEARBEITUNG

Wenn das Ziel darin besteht, t2 mit Werten aus t1 zu aktualisieren, die nicht BEREITS in t2 enthalten sind, dann wäre es etwa so:

'INSERT INTO t2 
   SELECT t1.* FROM t1
     LEFT JOIN t2 
        ON t1.wid = t2.wid
     WHERE t2.wid IS NULL
     LIMIT ' . $number;

Der fehlende Schritt bestand einfach darin, nur die Ergebnisse von t1 zurückzugeben und sie dann in t2 einzufügen.