sql >> Databasteknik >  >> RDS >> Mysql

var är felet i min sql-kod?

JOIN t2 ON t1.wid = t1.wid

menade du det? eller menar du verkligen t1.wid =t2.wid? i så fall vill du ha en vänsteranslutning.

REDIGERA

Okej, så du fixade det. Det kommer inte att visa några resultat om det inte finns rader i t2 som har en bredd som matchar en rad i t1 med samma bredd.

Om du vill ha resultat, ändra det till detta:

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

NÄSTA REDIGERING

Om målet är att uppdatera t2 med värden från t1 som inte REDAN finns i t2, då skulle det vara ungefär så här:

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

Det saknade steget var helt enkelt att bara returnera t1:s resultat och sedan infoga dem i t2.



  1. Konfigurera en fjärransluten MySQL-databasanslutning

  2. MySQL Infoga stora datamängder från fil med Java

  3. Hur man genererar Add Column Statement för alla tabeller i en databas i SQL Server - SQL Server / T-SQL Tutorial Del 49

  4. Hur man beräknar skillnaden mellan två datum i SQLite