Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General »

[SOLUCIONADO] Juntar 2 tablas siempre que los campos no existan

Estas en el tema de Juntar 2 tablas siempre que los campos no existan en el foro de Bases de Datos General en Foros del Web. Hola tengo 2 tablas, la de imagenes y otra con votos de los usuarios aparte de una tercera con los usuarios, lo que me gustaría ...
  #1 (permalink)  
Antiguo 09/04/2014, 15:17
 
Fecha de Ingreso: mayo-2008
Ubicación: Granada
Mensajes: 131
Antigüedad: 15 años, 11 meses
Puntos: 2
Juntar 2 tablas siempre que los campos no existan

Hola tengo 2 tablas, la de imagenes y otra con votos de los usuarios aparte de una tercera con los usuarios, lo que me gustaría es poder mostrar las imagenes que no voto cierto usuario, ya que como ver los que si valoro ya lo conseguí sin problemas :)

La sentencia que ahora mismo estoy usando es la siguiente pero no me sirve:
Código SQL:
Ver original
  1. SELECT * FROM img INNER JOIN voto
  2. WHERE voto.img_referencia!=img.ID AND voto.usuario!="'.$iduser.'"'

Saludos cordiales y haber si alguien me puede ayudar

Última edición por gnzsoloyo; 09/04/2014 a las 20:24
  #2 (permalink)  
Antiguo 09/04/2014, 19:22
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: Juntar 2 tablas siempre que los campos no existan

Muevo tu tema desde PHP a base de datos... ojalá hubieras mencionado el motor que estás usando.
__________________
- León, Guanajuato
- GV-Foto
  #3 (permalink)  
Antiguo 09/04/2014, 20:12
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 17 años, 8 meses
Puntos: 774
Respuesta: Juntar 2 tablas siempre que los campos no existan

prueba con un left join ;)
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #4 (permalink)  
Antiguo 10/04/2014, 03:53
 
Fecha de Ingreso: mayo-2008
Ubicación: Granada
Mensajes: 131
Antigüedad: 15 años, 11 meses
Puntos: 2
Respuesta: Juntar 2 tablas siempre que los campos no existan

Perfecto, muchas gracias a los dos, no me di cuenta que no estaba publicando en buen sitio lo tendré en cuenta la próxima vez.

En cuanto vuelva pruebo con left join que me recomiendas y comento lo que sea

Saludos
  #5 (permalink)  
Antiguo 11/04/2014, 03:08
 
Fecha de Ingreso: mayo-2008
Ubicación: Granada
Mensajes: 131
Antigüedad: 15 años, 11 meses
Puntos: 2
Pregunta Respuesta: Juntar 2 tablas siempre que los campos no existan

Hola de nuevo, estoy probando pero no lo acabo de conseguir del todo, he probado varias cosas pero de momento lo que mas se acerca a lo que busco es esto:

Código SQL:
Ver original
  1. SELECT * FROM img LEFT JOIN voto
  2. ON voto.img_referencia=img.ID AND voto.usuario="'.$iduser.'"'

y luego dentro del while escribo:
Cita:
código de programacion no permitido en foros de BBDD.
De esta forma consigo que solo muestre las imágenes que no voto ese usuario, el problema lo tengo en que me hace falta todo desde SQL y eliminar la sentencia IF del bucle, porque por ejemplo la uso para hacer un recuento de todos los registros y posteriormente para saber las imágenes que se muestran por pagina con LIMIT

Alguien sabría como resolver esto?

Saludos

Última edición por gnzsoloyo; 11/04/2014 a las 10:16
  #6 (permalink)  
Antiguo 11/04/2014, 10:04
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 17 años, 8 meses
Puntos: 774
Respuesta: Juntar 2 tablas siempre que los campos no existan

En tu query pon esto:
Código SQL:
Ver original
  1. WHERE voto.referencia_imagen IS NOT NULL
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me

Última edición por gnzsoloyo; 11/04/2014 a las 10:17
  #7 (permalink)  
Antiguo 11/04/2014, 10:18
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: Juntar 2 tablas siempre que los campos no existan

Código MySQL:
Ver original
  1. FROM img LEFT JOIN voto ON voto.img_referencia=img.ID
  2. WHERE voto.usuario ='".$iduser."' OR voto.usuario  IS NULL

o bien, como dice @Libras:
Código MySQL:
Ver original
  1. FROM img LEFT JOIN voto ON voto.img_referencia=img.ID
  2. WHERE voto.usuario  IS NULL
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #8 (permalink)  
Antiguo 11/04/2014, 21:14
 
Fecha de Ingreso: mayo-2008
Ubicación: Granada
Mensajes: 131
Antigüedad: 15 años, 11 meses
Puntos: 2
Respuesta: Juntar 2 tablas siempre que los campos no existan

Muchas gracias ya esta solucionado, el problema de lo que dices gnzsoloyo es que también muestra las imágenes votadas :) gracias de todos modos por que me hizo probar un poco mas para investigar

Y lo que me dijo Libras igual solo me funciona como dice gnzsoloyo, retirando el NOT entre IS y NULL anda a la perfección.

Otra vez muchas gracias a todos y saludos cordiales

Etiquetas: mysql, php
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 22:29.