mysql - optimizar - ¿dónde está la falla en mi código sql?
select mysql (2)
''SELECT * FROM t1
JOIN t2 ON t1.wid = t2.wid
WHERE t2.wid IS NULL
LIMIT '' . $number;
Este código no me devuelve nada, ¿podrían ayudarme por qué no recupero los valores?
Creo que tienes un error tipográfico.
''SELECT * FROM t1
JOIN t2 ON t1.wid = t2.wid
WHERE t2.wid IS NULL
LIMIT '' . $number;
JOIN t2 ON t1.wid = t1.wid
¿lo dijiste? o realmente quieres decir t1.wid = t2.wid? en ese caso, querrías unirme a la izquierda.
EDITAR
De acuerdo, entonces lo arreglaste. Eso no mostrará ningún resultado a menos que haya filas en t2 que tengan un wid que coincida con una fila en t1 con el mismo wid.
Si quieres resultados, cámbialo a esto:
''SELECT * FROM t1
LEFT JOIN t2 ON t1.wid = t2.wid
WHERE t2.wid IS NULL
LIMIT '' . $number;
SIGUIENTE EDICION
Si el objetivo es actualizar t2 con valores de t1 que ya no están en t2, sería algo como esto:
''INSERT INTO t2
SELECT t1.* FROM t1
LEFT JOIN t2
ON t1.wid = t2.wid
WHERE t2.wid IS NULL
LIMIT '' . $number;
El paso que faltaba era simplemente devolver solo los resultados de t1, y luego insertarlos en t2.