Ver Mensaje Individual
  #4 (permalink)  
Antiguo 21/02/2014, 11:16
Avatar de gnzsoloyo
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, 5 meses
Puntos: 2658
Respuesta: Resultados dependientes de 2 tablas

Cita:
Iniciado por sjam7 Ver Mensaje
pero esa consulta solo mostrara los campos que tengan igual el userid? yo necesito que se sumen, es decir, que sea 13 o en una o en otra (o en ambas)
Y para qué supones que pongo el
Código MySQL:
Ver original
  1. AND (r.userid=13  OR r.userid IS NULL)
en el WHERE?

Partamos de la base que si ambas tablas se relacionan, es por el userid, y por tanto ese campo obligatoriamente deben indicarse en el ON. AL menos, la relación se infiere de que la segunda tabla se llame "registros_acciones", por lo que debe haber una tabla acciones relacionada con registros. Pero eso implica que es imposible que haya un registro en "registros_acciones" que no exista en "registro". Si la hubiera, tendrías una inconsistencia brutal, un gravísimo error de diseño, o una definición absurda de reglas de negocio.
Si eso no ha quedado claro, revisa de nuevo los apuntes y el manual de referencia. Esa es la forma en que se relacionan dos tablas por INNER JOIN.
Ahora bien, lo que tu planteabas implicaba buscar un userid de la segunda tabla que debía ser 13, o bien nulo, pero es es imposible en un INNER JOIN, porque la relación debe existir si o sí. Para poder cumplir con esa condición debe usar LEFT JOIN, y en ese caso alcanza con poner la condición como te lo puse arriba.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)