PHP - problema consulta MySQL

 
Vista:

problema consulta MySQL

Publicado por Josep (28 intervenciones) el 24/01/2003 18:03:02
hola, necesito saber como se debe hacer esta consulta en mysql.
Explico: tengo 3 tablas
documentos(C_DOC,TIPO_DOC,...) -> 1 registro (1,A,...)
firmas(C_DOC,...) -> 1 reg (1,...)
documentos_tipos_firmas(TIPO_DOC,USUARIO,...) -> 2 reg (A,U1,...) (A,U2,..)
y la consulta es: Documentos que están firmados?? (los que tienen todas las firmas o sea cuenta(firmas)=cuenta(documentos_tipos_firmas)

En Access como se pueden hacer sub-selects la consulta siguiente funciona correctamente (1 firma realizada, 2 firmas necesarias ):
SELECT documentos.C_DOC, documentos.TIPO_DOC, Count(firmas.USUARIO_FIRMA) NUM_FIRMAS
FROM documentos INNER JOIN firmas ON documentos.C_DOC = firmas.C_DOC
GROUP BY documentos.C_DOC, documentos.TIPO_DOC
HAVING (((Count(firmas.USUARIO_FIRMA))=(SELECT Count(documentos_tipos_firmas.USUARIO_FIRMA) FROM documentos_tipos_firmas WHERE documentos_tipos_firmas.TIPO_DOC=documentos.TIPO_DOC)));

pero en MySQL la siguiente consulta no devuelve lo esperado, sino que devuelve 2 firmas realizadas, 2 firmas necesarias

SELECT documentos.C_DOC, documentos.TIPO_DOC, Count(firmas.USUARIO_FIRMA) AS NUM_FIRMAS, Count(documentos_tipos_firmas.USUARIO_FIRMA) AS FIRMAS_NECESARIAS
FROM documentos, firmas, documentos_tipos_firmas
WHERE (((firmas.C_DOC)=[documentos].[C_DOC]) AND ((documentos_tipos_firmas.TIPO_DOC)=[documentos].[TIPO_DOC]))
GROUP BY documentos.C_DOC, documentos.TIPO_DOC;

Este error pasa xq hay 2 registros por el mismo tipo de docuemento y al relacionar las 3 tablas cuentan 2 registros en firmas y no 1!!!
alguien me puede ayudar???
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:problema consulta MySQL

Publicado por Jose Rolando (38 intervenciones) el 13/02/2003 15:13:46
Mira, en la pàgina www.rinconastur.com hay muchos ejemplos incluyendo el relacionar varias tablas y pasar el resultado a otra.
Espero que encuentres la solucion.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar