Comunidad de diseño web y desarrollo en internet online

LEFT JOIN CON CONDICION DE TERCERA TABLA

Citar            
MensajeEscrito el 31 Ene 2014 04:51 pm
Hola ojala alguien pueda orientarme, estoy tratando de hacer una consulta left join, pero necesito que muestre el resultado dependiendo de una tercera tabla
esta es mi consulta pero asi solo muestra las coincidencias

SELECT A.IDA, R.ACTO, A.sec, A.nombre, IFNULL( Count( R.acto ) , 0 ) , IFNULL( sum( R.monto ) , 0 ) FROM (actos A, tabla S)LEFT JOIN (rep R) ON A.ida = R.acto WHERE (A.sec = 'uno') AND S.fecha BETWEEN '2014-01-01' AND '2014-01-31' and s.key=r.rey GROUP BY nombre

lo muestra asi:
nombre count(acto) sum(monto)
nombre1 2 100
nombre2 1 50

y lo que yo quiero es que muestre todo el contenido de la tabla

nombre count(acto) sum(monto)
nombre1 2 100
nombre2 1 50
nombre3 0 0
nombre4 10 20
.
.
.
.
nombre100 0 0

Bueno ojala me haya explicado...
Y gracias anticipadas..

Por causs

9 de clabLevel



 

chrome
Citar            
MensajeEscrito el 18 Feb 2014 03:43 pm
Hola, quieres mostrar todos los datos de la tabla "tabla S"?

Por Krola

5 de clabLevel



 

chrome
Citar            
MensajeEscrito el 18 Feb 2014 10:23 pm
Siempre puedes unir mas y más, un ejemplo de ma so menos como se utilizar:

Código MySQL :

SELECT id, nombre, apellido, escuela
FROM personas AS person
JOIN escuelas AS school
ON person.id_escuela = school.id

y Aqui un ejemplo PRACTICO que realize hace poco donde necesite unir 5 tablas donde sus respectivas PK y FK coincidan, (comentarios finales despues del siguiente código).

Código MySQL :

SELECT 
    id_cedula, fecha, nombre, siglas, representante, contacto,
    acc.autoproduccion, acc.ampliacion, acc.mejoramientos, acc.vivienda_nueva, acc.adquisicion_lote, acc.otra, acc.total, acc.ecotecnologias, acc.zonaAtencion, acc.cobertura, acc.alianza,
    dom.calle, dom.num_interior, dom.num_exterior, dom.colonia, dom.codigo_postal, dom.telefono, dom.telefono, dom.correo, dom.organizacion, dom.agencia_productora, dom.desarrollador_acreditado,
    muns.municipio,
    edos.estado,
    ant.ano, ant.objetivos
FROM cedulas AS ced
JOIN acciones AS acc
  ON ced.id_accion = acc.id_accion
JOIN domicilios AS dom
  ON ced.id_domicilio = dom.id_domicilio
JOIN estados AS edos
  ON dom.estado = edos.id_estado
Join municipios AS muns
  ON dom.municipio = muns.id_municipios
JOIN antecedentes AS ant
  ON ced.id_antecedente = ant.id_antecedente
WHERE id_cedula = :id_cedula


1. trata de ordenar tus consultas para que sean más legibles.
2. recuerda que si tienes el campo id_algo y este es una llave foranea, deberas renombrar las tablas para evitar datos ambigos como en:

Código MySQL :

JOIN antecedentes AS ant
ON ced.id_antecedente = ant.id_antecedente



Como consejo utiliza workbench o similar para probar tus consultas antes de meterlas a código.

Por elporfirio

Claber

652 de clabLevel

1 tutorial

Genero:Masculino  

FullStack Web Developer

firefox

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.