sql >> Databáze >  >> RDS >> Mysql

kde je chyba v mém sql kódu?

JOIN t2 ON t1.wid = t1.wid

myslel jsi to tak? nebo opravdu myslíš t1.wid =t2.wid? v takovém případě byste chtěli připojení vlevo.

UPRAVIT

Dobře, tak jsi to opravil. To neukáže žádné výsledky, pokud nejsou řádky v t2, které mají šířku, která odpovídá řádku v t1 se stejnou šířkou.

Pokud chcete výsledky, změňte to na toto:

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

DALŠÍ ÚPRAVA

Pokud je cílem aktualizovat t2 hodnotami z t1, které JIŽ nejsou v t2, pak by to bylo něco takového:

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

Chybějícím krokem bylo jednoduše vrátit pouze výsledky t1 a poté je vložit do t2.



  1. Požadavek nastaven v Concurrent Manager

  2. Proč žádný výstup, když se dokončí anonymní blok PLSQL?

  3. Chybová zpráva ASP Classic SQL Query, prosím správnou syntaxi

  4. Umožňuje oracle možnost nepotvrzeného čtení?