Foro de elhacker.net

Programación => Bases de Datos => Mensaje iniciado por: EFEX en 5 Febrero 2014, 12:42 pm



Título: Unificar query
Publicado por: EFEX en 5 Febrero 2014, 12:42 pm
Llevo un tiempo con esto.. dando vueltas, cual es la mejor forma de unificar estos dos query, 1 es para obtener el tema junto con info del usuario y el otro es para obtener los 'likes' del tema junto con info del usuario...

Código
  1. /* MOSTRAR TEMA 1 */
  2. SELECT users.name, users.email, temas.titulo
  3. FROM temas
  4. INNER JOIN users ON temas.idusuario = users.id
  5. WHERE temas.id = 1;
  6.  
  7.  
  8. /* OBTENER LIKES DEL TEMA 1 */
  9. SELECT users.name, users.email
  10. FROM likes
  11. INNER JOIN users ON likes.idusuario = users.id
  12. WHERE likes.idtema = 1;

Esto lo hago en 2 query lo cual no es lo correcto y quiero hacerlo en un solo query. Dejo un enlace para que prueben..

http://sqlfiddle.com/#!2/174a0/9


Título: Re: Unificar query
Publicado por: HdM en 5 Febrero 2014, 14:13 pm
Hola.

Si no te entendí mal, podría ser:

Código
  1. SELECT users.name, users.email, temas.titulo, userslike.name AS name_like, userslike.email AS email_like
  2. FROM users AS userslike
  3. INNER JOIN ((users INNER JOIN temas ON temas.idusuario = users.id)
  4. INNER JOIN likes ON temas.id=likes.idtema) ON userslike.id=likes.idusuario
  5. WHERE temas.id = 1;

Un saludo.


Título: Re: Unificar query
Publicado por: EFEX en 5 Febrero 2014, 18:01 pm
Gracias por el ejemplo me sirvio!, solo tengo que prevenir que el mismo usuario quien creo el tema no pueda darse auto-like.