Mysql
 sql >> Base de données >  >> RDS >> Mysql

où est le défaut dans mon code sql ?

JOIN t2 ON t1.wid = t1.wid

tu voulais dire ça ? ou voulez-vous vraiment dire t1.wid =t2.wid ? auquel cas vous voudriez une jointure à gauche.

MODIFIER

Bon, alors vous l'avez corrigé. Cela n'affichera aucun résultat à moins qu'il y ait des lignes dans t2 qui ont une largeur qui correspond à une ligne dans t1 avec la même largeur.

Si vous voulez des résultats, remplacez-le par ceci :

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

MODIFICATION SUIVANTE

Si l'objectif est de mettre à jour t2 avec des valeurs de t1 qui ne sont pas DÉJÀ dans t2, alors ce serait quelque chose comme ceci :

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

L'étape manquante consistait simplement à renvoyer uniquement les résultats de t1, puis à les insérer dans t2.