SQL - Unir dos consultas SQL

   
Vista:

Unir dos consultas SQL

Publicado por Carlos Llanos (7 intervenciones) el 22/08/2017 00:53:03
Hola, tengo dos consultas que necesito unir en una sola, agradezco la ayuda que puedan ofrecer:

Consulta 1:

1
2
3
4
5
6
7
8
9
10
SELECT a.id as casos, c.cname as categoria, b.dname as departamento, a.start_date, a.close_date,
d.pname as empresa, e.sname as estado
from
huru_hoduma_problems as a, huru_hoduma_departments as b, huru_hoduma_categories as c,
huru_hoduma_priorities as d, huru_hoduma_statuses as e
where
a.department = b.id and
a.category = c.id and
a.priority = d.id and
a.`status` = e.id

----
Consulta 2: la tabla "huru_hoduma_problems" contiene el campo "rep" que se relaciona con la llave "id" en la tabla "huru_hoduma_users", en esta misma tabla el campo "joomla_id" se relaciona con la llave "id" en la tabla "huru_users".


1
2
3
4
SELECT p.name
from
huru_users as p inner join huru_hoduma_users as q on p.id = q.joomla_id inner join huru_hoduma_problems as r
on r.rep = q.id

Requiero incluir el campo name de la tabla "huru_users" en la consulta 1.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Isaias

Unir dos consultas SQL

Publicado por Isaias (1067 intervenciones) el 22/08/2017 00:56:51
¿Motor de base de datos?
¿Porque en su primer consulta no hace uso de INNER JOIN?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Unir dos consultas SQL

Publicado por Carlos Llanos (7 intervenciones) el 22/08/2017 01:05:04
Hola.

El motor el MySQL.

En la primera consulta las relaciones son simples, siempre entre 2 tablas, seguramente puede optimizarse, pero esa es la razón de no usar INNER JOIN; no supe como incluir directamente en la sentencia para traer el dato que requiero usando una tabla puente hasta una tercera tabla.

Espero responder la pregunta. Gracias.

CALL
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Isaias

Unir dos consultas SQL

Publicado por Isaias (1067 intervenciones) el 22/08/2017 01:12:51
Exactamente IGUAL, con INNER JOIN

1
2
3
4
5
SELECT a.*, b.*, c.*
FROM cliente a
inner join factura b on a.id = b.id
inner join detalle c on b.id = c.id
etc.etc.etc.etc.etc

Tantos INNER JOIN, como los soporte MySQL

Trata de utilizar siempre el INNER JOIN
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Unir dos consultas SQL

Publicado por Carlos Llanos (7 intervenciones) el 22/08/2017 01:25:11
Si entiendo bien debo replantear la consulta 1 haciendo todo el relacionamiento con INNER JOIN, lo intentaré. Gracias.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Unir dos consultas SQL

Publicado por c (7 intervenciones) el 22/08/2017 01:42:20
Hecho!! Gracias...

1
2
3
4
5
6
7
8
9
SELECT a.id as casos, c.cname as categoria, b.dname as departamento, a.start_date, a.close_date,
d.pname as empresa, e.sname as estado, p.name
from
huru_hoduma_problems as a inner join huru_hoduma_departments as b on a.department = b.id inner join
huru_hoduma_categories as c on a.category = c.id inner join
huru_hoduma_priorities as d on a.priority = d.id inner join
huru_hoduma_statuses as e on a.`status` = e.id inner join
huru_hoduma_users as q on a.rep = q.id inner join
huru_users as p on p.id = q.joomla_id
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Isaias

Unir dos consultas SQL

Publicado por Isaias (1067 intervenciones) el 22/08/2017 16:57:39
INNER JOIN, es mucho, pero mucho mas eficiente que hacer las uniones mediante WHERE.

Felicidades y gracias por compartir
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Unir dos consultas SQL

Publicado por Bryan Fernando Rangel Aguirre (2 intervenciones) el 08/11/2017 01:41:14
Te recomiendo que utilices una funcion llamada inner join empleandolo de esta manera


SELECT a.*, b.*, c.*
FROM cliente a
inner join factura b on a.id = b.id
inner join detalle c on b.id = c.id
etc
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar