Ver Mensaje Individual
  #2 (permalink)  
Antiguo 11/04/2018, 12:23
leonardo_josue
Colaborador
 
Fecha de Ingreso: enero-2007
Ubicación: México
Mensajes: 2.097
Antigüedad: 17 años, 4 meses
Puntos: 447
Respuesta: Juntar dos tablas y group by

Hola davidj:

No entiendo muy bien la estructura de tu consulta, sobre todo por el hecho de que estás AGRUPANDO registros, sin embargo no utilizas ninguna función de agregación (COUNT, MIN, MAX, AVG, etc), entonces, no encuentro el sentido de esta agrupación.

Cita:
¿Como podría combinar los resultados en una sola consulta como si fueran una sola tabla (incluyendo todos los AND y GROUP BY)?
Para esto, primero tendrías que decirnos cuál es la cardinalidad entre las tablas, es decir cómo están relacionadas entre si... ¿Todas las Profesiones Tienen un registro en Sueldos que cumpla con la condición? o puede haber profesiones que no tengan un registro en sueldos. Y lo mismo pasa con la tabla de valores, ¿todas las profesiones tienen un registro que cumpla con la condición? ¿Se relacionan 1 a 1, 1 a muchos o muchos a muchos?

Dependiendo de tu respuesta entonces será la forma en que tengas que relacionar tus registros...

Una "posible" solución sería utilizar INNER JOIN's, más o menos así:

Código MySQL:
Ver original
  1. SELECT sueldos.*, profesiones.*, valores.*
  2. FROM profesiones
  3. INNER JOIN sueldos ON
  4.   sueldos.puesto_id = profesiones.id_profesion
  5. INNER JOIN valores ON
  6.       valores.puesto_id = profesiones.id_profesion
  7.   and sueldos.publicado = valores.publicado
  8.   and sueldos.empresa_id = valores.empresa_id
  9.     sueldos.publicado = 1
  10. AND sueldos.empresa_id = 12
  11. GROUP BY profesiones.id_profesion;

Pero esta función sólo aplica si tienes una relación 1 a 1 entre tus tablas y sea mandatoria, es decir, que el registro exista en las tres tablas.

Si esto no te sirve, entonces postea algunos datos de ejemplo de tus tablas y a partir de esos datos dinos qué es lo que esperas obtener como salida.

Saludos
Leo.