Test Foro de elhacker.net SMF 2.1

Programación => Desarrollo Web => 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 (sql) [Seleccionar]

/* MOSTRAR TEMA 1 */
SELECT users.name, users.email, temas.titulo
FROM temas
INNER JOIN users ON temas.idusuario = users.id
WHERE temas.id = 1;


/* OBTENER LIKES DEL TEMA 1 */
SELECT users.name, users.email
FROM likes
INNER JOIN users ON likes.idusuario = users.id
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 (sql) [Seleccionar]

SELECT users.name, users.email, temas.titulo, userslike.name AS name_like, userslike.email AS email_like
FROM users AS userslike
INNER JOIN ((users INNER JOIN temas ON temas.idusuario = users.id)
INNER JOIN likes ON temas.id=likes.idtema) ON userslike.id=likes.idusuario
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.