Foros del Web » Programando para Internet » PHP »

Unir Consulta a partir de campos compartidos.

Estas en el tema de Unir Consulta a partir de campos compartidos. en el foro de PHP en Foros del Web. Estimados, soy nuevo participando en el foro y estoy haciendo mi camino en Programación. La consulta la he buscado en el buscador de temas pero ...
  #1 (permalink)  
Antiguo 13/07/2015, 15:29
Avatar de NLeone  
Fecha de Ingreso: junio-2012
Ubicación: Buenos Aires.
Mensajes: 22
Antigüedad: 11 años, 10 meses
Puntos: 0
Pregunta Unir Consulta a partir de campos compartidos.

Estimados, soy nuevo participando en el foro y estoy haciendo mi camino en Programación.

La consulta la he buscado en el buscador de temas pero no encontré o no busqué bien, no quiero ser redundante. Es algo muy sencillo pero no para poder darme cuenta a esta hora:

Tengo 3 tablas en Mysql, las estoy trabajando con PDO, todo eso perfecto. Lo mío es la lógica. Para dar un ejemplo rápido:
__________________________________________________ ___
TABLA APORTES:

id, periodo, codigointerno, cuitEmpleador, cuilTitular, importe

TABLA PADRON:

id, cuitEmpleador, cuiltTitular, apellidoNombre, etc.....

TABLA EMPRESAS:
id, cuitEmpleador, razonSocial, direccion, etc....
__________________________________________________ ___

Necesito hacer una consulta donde me traiga y muestre:

el periodo, el codigointerno, la razonSocial (según el cuitEmpleador), el apellidoNombre (según el cuilTitular) y el importe que aporta.

No me logro dar cuenta cómo realizar la consulta. Por favor espero que alguien pueda darme un poco de ayuda, y si es necesario aporto más datos para llegar a realizar este SELECT.

Muchísimas gracias de antemano, saludos a todos!!!

Última edición por NLeone; 13/07/2015 a las 15:30 Razón: Me confundí.
  #2 (permalink)  
Antiguo 14/07/2015, 00:40
 
Fecha de Ingreso: septiembre-2014
Mensajes: 180
Antigüedad: 9 años, 7 meses
Puntos: 14
Respuesta: Unir Consulta a partir de campos compartidos.

Necesitas saber, o indicarnos, cómo están relacionadas las tablas entre si para poder empezar a buscar la solución. Si no, va a estar difícil!
__________________
Unelink.es - VPS, servidores dedicados, hosting y dominios. 10 años a tu lado.
  #3 (permalink)  
Antiguo 14/07/2015, 03:33
Avatar de Jvgaas7  
Fecha de Ingreso: julio-2015
Mensajes: 40
Antigüedad: 8 años, 9 meses
Puntos: 1
Respuesta: Unir Consulta a partir de campos compartidos.

Si no me equivoco debes de usar los alias unido por un inner join. Aunque muéstranos la relación de las tablas para mayor ayuda ;)
  #4 (permalink)  
Antiguo 14/07/2015, 04:56
 
Fecha de Ingreso: julio-2015
Mensajes: 67
Antigüedad: 8 años, 9 meses
Puntos: 5
Respuesta: Unir Consulta a partir de campos compartidos.

Imagino que las tablas están relacionadas por cuitEmpleado, que es el campo que se repite en todas ellas.

Para realizar eso que dices, podrías hacerlo con una consulta multitabla, sería algo así:

Código:
SELECT periodo, codigointerno, razonsocial, apellidoNombre, importe FROM aportes a, padron p, empresas e WHERE a.cuitEmpleado=p.cuitEmpleado AND a.cuitEmpleado=e.cuitEmpleado AND e.cuitEmpleado=p.cuitEmpleado AND e.cuitEmpleado=a.cuitEmpleado AND p.cuitEmpleado=a.cuitEmpleado AND p.cuitEmpleado=e.cuitEmpleado
Igual me he liado un poco con los AND, jeje, pero creo que así debería valerte la consulta.
  #5 (permalink)  
Antiguo 14/07/2015, 07:30
Avatar de NLeone  
Fecha de Ingreso: junio-2012
Ubicación: Buenos Aires.
Mensajes: 22
Antigüedad: 11 años, 10 meses
Puntos: 0
Respuesta: Unir Consulta a partir de campos compartidos.

Hola a todos y muchas gracias por sus respuestas, recién he podido conectarme!!

Comento, los campos en común son los que están a la vista, cuitEmpleador, cuilTitular (en el caso de las dos primeras tablas). El tema es el siguiente, la tabla Aportes se completa y se va llenando con un procedimiento almacenado que lee un .txt donde me envían los datos en texto plano.

Por lo cual no he creado una relación explícita por así decirlo con claves foráneas y restricciones como sí tengo en otras tablas del mismo sistema de control. Pero esto lo hice por mi propio desconocimiento quizá, porque pensé en que si creo una relación entre aportes y empresas por ejemplo donde el campo compartido sea cuitEmpleador, y con una restricción en cascada, el día en que alguien elimine un aporte, osea un registro en particular con el cuitEmpleador, me eliminará por lógica consecuencia los registros que coincidan con el cuit en la tabla Empresas.

Es por esa razón que no creé una relación desde el workbench, que es lo que estoy utilizando.

Mi idea es obtener los resultados como lo menciono, no se si es requerimiento obligatorio tener la relación creada, soy nuevo...seguro omití algo.

Voy a probar lo que me sugieren cada uno de ustedes!!!

Espero haber sido un poco claro en lo que cuento!!

Muchas gracias nuevamente, si a alguno se le ocurre y puede darme un poco más de info sobre esto para probar algo diferente quedo en el hilo!
  #6 (permalink)  
Antiguo 16/07/2015, 09:13
Avatar de Jvgaas7  
Fecha de Ingreso: julio-2015
Mensajes: 40
Antigüedad: 8 años, 9 meses
Puntos: 1
Respuesta: Unir Consulta a partir de campos compartidos.

Independientemente de que las tablas estén relacionadas o no, puedes unir en una consulta lo que deseas ver.

Te dejo un ejemplo en SQL server para que veas como se construye.

Código:
select count(a.nombre) as 'Número de alumnos',c.matricula, c.marca,c.modelo
from (alumno a inner join monitor m on a.codmon=m.codmon) inner join coche c on c.codcoche=m.codcoche
group by c.matricula,c.marca,c.modelo;

Si te das cuenta a cada tabla se le asigna un alias. En la sentencia fromcon el inner join juntas los valores. Coge esto de aqui y esto de aquí y muestralo.

En caso de tener dos tablas relacionadas le indicas que ambos campos son lo mismo. a.codmon=m.codmon indica que las dos columnas de diferentes tablas contienen el mismo dato y estan relacionadas.
A todo esto le puedes añadir una clausura Where.
Échale un ojo y prueba ;)
  #7 (permalink)  
Antiguo 16/07/2015, 11:49
Avatar de NLeone  
Fecha de Ingreso: junio-2012
Ubicación: Buenos Aires.
Mensajes: 22
Antigüedad: 11 años, 10 meses
Puntos: 0
Respuesta: Unir Consulta a partir de campos compartidos.

Excelente! Me ha servido mucho aplicarlo en Mysql!

Muchas gracias!!!

Etiquetas: mysql
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 07:29.