Ver Mensaje Individual
  #5 (permalink)  
Antiguo 28/08/2011, 16:34
Avatar de mayid
mayid
Colaborador
 
Fecha de Ingreso: marzo-2009
Ubicación: BsAs
Mensajes: 4.014
Antigüedad: 15 años, 8 meses
Puntos: 101
Información Respuesta: conteo junto con joins devuelve mas resultados de los esperados

Cita:
Consiejo: Jamás uses la coma como JOIN, es siempre preferible usar INNER/LEFT/RIGHT JOIN, es mucho más eficiente por varias razones.
Gracias por el consejo, que no tenía tan presente la cuestion, y a veces si usaba comas.

Respecto a la consulta, si descomento las lineas siguientes obtengo 12 como resultado. Sin embargo, ejecutandola así como se ve, obtengo 4 (no 4 rows, sino el numero 4 por el count).
Código MySQL:
Ver original
  1.          SELECT COUNT(*) FROM Payments p
  2.         # LEFT JOIN Commissions_Payments AS CP USING (pay_id)
  3.          # LEFT JOIN Commissions AS comm USING (comm_id)
  4.        WHERE user_id_approver IS NOT NULL AND user_id_payer IS NULL
  5.          #AND comm_payed = 0        
  6.         ) AS approved
Si intento algo así COUNT(p.*) me da error. Y si pongo un group by tambien. O sea, como usar joins para tomar una condicion de otra tabla? No estoy pudiendo hacerlo.