Vengo aqui porque llevo toda la tarde intentando hacerlo, me explico:
Tengo tres tablas. Un usuario puede publicar varios videos, los videos pueden ser votados una vez por cada usuario.
http://img36.picoodle.com/img/img36/8/6/28/f_Untitled4m_7b07860.jpg
Mi problema viene cuando quiero listar los videos diferenciandolos de si ha sido votado por el usuario que esta generando el listado.
Es decir conozco la ip y el id del usuario y al mostrar el listado de videos con una sola consulta tengo que saber si ese video ya esta votado por el usuario en cuestion.
La ip del usuario o el id es lo que uso para saber si se ha votado. Es decir que un usuario no registrado puede votar una sola vez y se almacenara su ip mientras que su id sera 0.
Es el mismo funcionamiento de meneame.net
No consigo hacerlo de ninguna manera. Y no quiero hacer una consulta por cada video xq en cada listado podrian ser 20 consultas y no me convence nada.
Probando con subconsulta:
SELECT titulo, id_video AS idVid, (SELECT id_usuario, ip FROM votos WHERE (id_usuario=6 OR ip='127.0.0.1') AND id=idVid))
FROM v_video
ORDER BY fecha DESC , publicacion DESC
Probando con inner join:
SELECT titulo, id_video, votos.id_usuario, votos.ip
FROM v_video
INNER JOIN votos ON votos.id_usuario=6 OR votos.ip = '127.0.0.1'
Ninguno me va Si alguien se le ocurre como hacerlo me seria de gran ayuda gracias.