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

Consulta MYSQL con LEFT JOIN, no lo consigo

Estas en el tema de Consulta MYSQL con LEFT JOIN, no lo consigo en el foro de Mysql en Foros del Web. Hola, el left join me esta volviendo loco la verdad ya no se que hacer haber si me podéis hechar una mano. tengo estas tablas ...
  #1 (permalink)  
Antiguo 11/08/2011, 07:14
Avatar de wsoul  
Fecha de Ingreso: octubre-2010
Mensajes: 190
Antigüedad: 13 años, 6 meses
Puntos: 13
Consulta MYSQL con LEFT JOIN, no lo consigo

Hola,

el left join me esta volviendo loco la verdad ya no se que hacer haber si me podéis hechar una mano.

tengo estas tablas

Tabla: urls (id,iduser,url)
Tabla: urls_stats (id,iduser,idurl)

Quiero sacar las URLS de la tabla URLS que no esten en urls_stats con iduser(usuario) y idurl(idurl) no se si me explico, las urls que le usuario aun no vio.

SELECT * FROM urls T LEFT JOIN urls-stats N ON(N.idurl=T.id) WHERE N.iduser<>$iduser
__________________
Compra y Vender artículos en https://www.losredactores.com o una comunidad de webmasters ? https://webeamos.com
  #2 (permalink)  
Antiguo 11/08/2011, 07:29
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: Consulta MYSQL con LEFT JOIN, no lo consigo

Código MySQL:
Ver original
  1. FROM urls T LEFT JOIN urls-stats N ON T.id = N.idurl
  2. WHERE N.iduser IS NULL AND T.id = $iduser
NULL no es un dato, por lo que no se pueden usar operadores lógicos con él, ni tampoco funciones de ningún tipo. NULL es un puntero a la nada y lo único que puede hacerse es determinar si el valor es NULL o no lo es.
Entendamos también que NULL y caracter vacío no son lo mismo.
LEFT JOIN devuelve NULL donde no hay coincidencias.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #3 (permalink)  
Antiguo 11/08/2011, 10:38
Avatar de wsoul  
Fecha de Ingreso: octubre-2010
Mensajes: 190
Antigüedad: 13 años, 6 meses
Puntos: 13
Respuesta: Consulta MYSQL con LEFT JOIN, no lo consigo

Hola, no lo consigo realmente lo que quiero, lo que tu me has dicho va genial PERO, tengo un problema

el N.user no tiene por que ser nulo, puede ser nulo, o puede tener el id de otro usuario que ya lo visitara, el tema es que sea nulo y no tenga mi ID

agrege un OR N.iduser pero claro, como pueden tener la misma url entonces me sale :S
__________________
Compra y Vender artículos en https://www.losredactores.com o una comunidad de webmasters ? https://webeamos.com
  #4 (permalink)  
Antiguo 11/08/2011, 11:12
Colaborador
 
Fecha de Ingreso: enero-2007
Ubicación: México
Mensajes: 2.097
Antigüedad: 17 años, 3 meses
Puntos: 447
Respuesta: Consulta MYSQL con LEFT JOIN, no lo consigo

Hola wsoul:

tal como comenta gnzsoloyo:

Cita:
LEFT JOIN devuelve NULL donde no hay coincidencias
Por lo tanto no entiendo cuando dices que

Cita:
el N.user no tiene por que ser nulo, puede ser nulo, o puede tener el id de otro usuario que ya lo visitara
Creo que sería conveniente que nos pusieras algunos datos de ejemplo, para poder entender mejor lo que estás queriendo obtener.

Saludos
Leo.
  #5 (permalink)  
Antiguo 11/08/2011, 11:39
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: Consulta MYSQL con LEFT JOIN, no lo consigo

Da la impresión de que hay algún defecto en la idea o en el diseño de las tablas...
SI almacenas URLs, tienes usuarios, y quieres saber qué URL visitó qué usuario y cuál no, deberías tener una tabla que relacione ambas, porque esa relación es N:N y eso exige una tabla para administrar esa relación.

¿Cómo es la estructura de esas tablas?
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Etiquetas: join, left, select, tabla
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 19:34.