Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

onde está a falha no meu código sql?

JOIN t2 ON t1.wid = t1.wid

você quis dizer isso? ou você realmente quer dizer t1.wid =t2.wid? nesse caso, você deseja uma junção à esquerda.

EDITAR

Ok, então você corrigiu. Isso não mostrará nenhum resultado, a menos que haja linhas em t2 que tenham um wid que corresponda a uma linha em t1 com o mesmo wid.

Se você quiser resultados, altere para isso:
'SELECT * FROM t1
          LEFT JOIN t2 ON t1.wid = t2.wid
          WHERE t2.wid IS NULL
          LIMIT ' . $number;

PRÓXIMA EDIÇÃO

Se o objetivo é atualizar t2 com valores de t1 que JÁ não estão em t2, então seria algo assim:
'INSERT INTO t2 
   SELECT t1.* FROM t1
     LEFT JOIN t2 
        ON t1.wid = t2.wid
     WHERE t2.wid IS NULL
     LIMIT ' . $number;

A etapa que faltava era simplesmente retornar apenas os resultados de t1 e, em seguida, inseri-los em t2.