Hola triby ya hice las correcciones, efectivamente ciudades y estados estan en la misma tabla t_estados
En fin creo que ese era el detalle que estaba causando las repeticiones, asi deje la consulta y parece que ya funciona:
Código MySQL:
Ver original$query = "select t_u.*, t_edo.nombre as nestado, t_edo.nombre as nciudad, t_mun.nombre_municipio as nmunicipio";
$query .= " from t_usuarios t_u";
$query .= " LEFT JOIN t_estados t_edo on t_edo.estado = t_u.estado AND t_edo.ciudad = t_u.ciudad";
$query .= " LEFT JOIN t_municipio t_mun on t_mun.municipio = t_u.municipio";
$query .= " where t_u.status='' and (t_u.nombre LIKE '%$q%' OR t_u.matricula LIKE '%$q%') limit $offset,$rows";
Pero tengo un problema, que estoy conciente que es porque la tabla esta mal diseñada per aclaro que yo no la hice, aun así, me tengo que adaptar a lo que ya tienen :/
mira esta es la tabla (datos ejemplo):
t_estados
Código:
+----------+---------+-----------+
| estado | ciudad | nombre |
+--------- +---------+-----------+
| 001 | | Veracruz |
+--------- +---------+-----------+
| 001 | 0001 | Xalapa |
+--------- +---------+-----------+
| 001 | 0002 | Cordoba |
+--------- +---------+-----------+
| 002 | | Tamulipas |
+--------- +---------+-----------+
| 002 | 0003 | Tampico |
+--------- +---------+-----------+
| 002 | 0004 | Reynosa |
+--------- +---------+-----------+
Podrás notar que un estado se identifica teniendo vacio el campo ciudad y el problemon es que ambos campos estado y ciudad comparten el campo nombre.
Entonces en mi consulta yo tengo asi:
t_edo.nombre as nestado, t_edo.nombre as nciudad
lo que me da como resultado que nestado y nciudad sean iguales, es decir tengan el mismo valor (el de la ciudad)...
osea me sale por ejemplo:
{"matricula":"0078190","nombre":"TROLLENCIO","sexo ":"M",
"estado":"001","ciudad":"0001","municipio":"9101",
"nestado":"Xalapa","nciudad":"Xalapa","nmunicipio":"lo que sea","fecha_nacim":"12.10.1960"},
como podria especificar en la consulta que el estado es el que tiene el campo ciudad vacio? y eso se haria en el select? o en el where?
Gracias