He intentado esto pero no me sale:
Código MySQL:
Ver original
Gracias y un saludo
| ||||
Select de dos tablas con campos iguales. Hola, tengo que hacer un consulta a la bd de dos tablas en las cuales hay campos con el mismo nombre. Es un autocompletado en un input. He intentado esto pero no me sale:
Código MySQL:
Ver original Gracias y un saludo Última edición por gnzsoloyo; 15/12/2012 a las 06:59 Razón: No se permite código de programación en los foros de bases de datos. |
| ||||
Respuesta: Select de dos tablas con campos iguales. Cita: Gracias por contestar. No me sale nigún error, simplemente no sale nada.Te pongo el cod: Código PHP: |
| ||||
Respuesta: Select de dos tablas con campos iguales. Movido a Foro de PHP para continuar el tema.
__________________ ¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente... "El problema es la interfase silla-teclado." (Gillermo Luque) |
| |||
Respuesta: Select de dos tablas con campos iguales. Hola, podrías agregarle un alias a cada campo, y cuando obtienes el valor de $row, colocarle el nombre del alias, es decir:
Código:
Y al obtener el valor de $row no le colocas el nombre del campo, si no el alias que le colocaste al campo!SELECT U.nombre AS 'NombreUsuario', U.apellidos AS 'ApellidosUsuario', U.telefono AS 'TelefonoUsuario', U.nif AS 'NifUsuario', U.telefono2 AS 'Telefono2Usuario', U.telefono3 AS ''Telefono3Usuario', A.nombre AS 'NombreAviso', A.apellidos AS 'ApellidosAviso', A.telefono AS 'TelefonoAviso', A.nif AS 'NifAviso', A.telefono2 AS 'Telefono2Aviso', A.telefono3 AS 'Telefono3Aviso' FROM usuarios U, avisoswed A; Espero que te sirva |
| ||||
Respuesta: Select de dos tablas con campos iguales. El alias no le va a sacar o poner nada. Para evitar conflictos en el array son necesarios si y sólo si en ambas tablas se presentan campos con el mismo nombre, y no se los está discriminando en el SELECT al usar "*". Pero por lo que dice el forista el problema es que no devuelve nada. Técnicamente hablando, la consulta es funcional, aunque el JOIN implícito no tiene determinada la relación entre ambas tablas y por tanto MySQL intentará matchear campos que tengan el mismo nombre en ambas tablas. En este caso, si no hay valores que pueda relacionar, la consulta podría devolver un producto cartesiano, pero difícilmente no devuelva nada. La única posibilidad de que no devuelva datos, en definitiva, es que no pueda relacionar valores entre ambas tablas, si los campos del mismo nombre son incompatibles, o no tienen datos relacionables. He pasado el post para acá para que verifiquen si hay defectos en el PHP, que es el código que posteó en el Foro de MySQL, (en los foros de BBDD no se tratan esos temas). Si consideran que el PHP está bien, GatorV, jpinedo o masterpuppet pueden devolver el post a MySQL, donde volveremos a revisarlo.
__________________ ¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente... "El problema es la interfase silla-teclado." (Gillermo Luque) Última edición por gnzsoloyo; 15/12/2012 a las 19:39 |
| ||||
Respuesta: Select de dos tablas con campos iguales. Cita: Gracias a los dos. Pienso que el problema debe de estar en el select puesto que este mismo código y con sólo la tabla usuarios funciona perfectamente.
Iniciado por gnzsoloyo ![]() El alias no le va a sacar o poner nada. Para evitar conflictos en el array son necesarios si y sólo si en ambas tablas se presentan campos con el mismo nombre, y no se los está discriminando en el SELECT al usar "*". Pero por lo que dice el forista el problema es que no devuelve nada. Técnicamente hablando, la consulta es funcional, aunque el JOIN implícito no tiene determinada la relación entre ambas tablas y por tanto MySQL intentará matchear campos que tengan el mismo nombre en ambas tablas. En este caso, si no hay valores que pueda relacionar, la consulta podría devolver un producto cartesiano, pero difícilmente no devuelva nada. La única posibilidad de que no devuelva datos, en definitiva, es que no pueda relacionar valores entre ambas tablas, si los campos del mismo nombre son incompatibles, o no tienen datos relacionables. He pasado el post para acá para que verifiquen si hay defectos en el PHP, que es el código que posteó en el Foro de MySQL, (en los foros de BBDD no se tratan esos temas). Si consideran que el PHP está bien, GatorV, jpinedo o masterpuppet pueden devolver el post a MySQL, donde volveremos a revisarlo. De todas formas probaré con los alias y comentamos. Un saludo |
| ||||
Respuesta: Select de dos tablas con campos iguales. ¿No será que la consulta que buscabas era en realidad así?:
Código MySQL:
Ver original Porque como dije antes, para devolverte datos haciendo el JOIN implícitos (la coma), sólo sucedería si todos los campos en ambas tablas tienen los mismos valores, y esto implicaría que son datos repetidos entre ambas. En cambio, si quieres que te devuelva todos los de ambas... eso es un UNION, no un JOIN.
__________________ ¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente... "El problema es la interfase silla-teclado." (Gillermo Luque) |
| ||||
Respuesta: Select de dos tablas con campos iguales. Cita: Ok, esta es la SOLUCIÓN.
Iniciado por gnzsoloyo ![]() ¿No será que la consulta que buscabas era en realidad así?:
Código MySQL:
Ver original Porque como dije antes, para devolverte datos haciendo el JOIN implícitos (la coma), sólo sucedería si todos los campos en ambas tablas tienen los mismos valores, y esto implicaría que son datos repetidos entre ambas. En cambio, si quieres que te devuelva todos los de ambas... eso es un UNION, no un JOIN. ![]() SALUDOS |
Etiquetas: |