sql teniendo solo la primera fila registrada en la tabla y quiero que todos

Alguien ya me ayudó con esta consulta, pero hice una adaptación y tengo un problema:

    SELECT 
        AVG(tyd.price) AS avg_price, COUNT(tyd.id_product) AS cnt, 
        tyd.id_marchand, tyd.id_product, 
        catalog.price AS c_price, tyd.price AS t_price, 
        tyd.amount AS t_am, pro_tyd.amount AS p_am, 
        pro_tyd.price AS p_price, catalog.img_src,  
        tyd.step, tyd.login AS tyd_l
    FROM catalog 
    INNER JOIN tyd ON catalog.id_marchand = tyd.id_marchand 
                   AND catalog.id_product =   tyd.id_product
                   AND tyd.step = "1" 
    INNER JOIN pro_tyd  ON tyd.id_marchand = pro_tyd.id_marchand 
                        AND tyd.id_product = pro_tyd.id_product
    GROUP BY 
         catalog.id_product, catalog.id_marchand
    HAVING 
         tyd.login = "[email protected]"

y solo funciona cuandotyd.login = "[email protected]" que es la identificación inferior. no funciona con user1 o user2 ... ¡No puedo entender por qué ...! También funciona si agrupo por tyd.login, pero en este caso las funciones AVG y COUNT funcionan solo en una sola línea ...

Aquí está la tabla:

id  id_marchand  id_product   login       price  amount  delay  step    time   
29      1           1       [email protected]   344     1       0      1   1343297500
120     1           1       [email protected]   54      1       0      1   1343297504
109     1           1       [email protected]  34      1       0      1   1343298598

CuandoHAVING tyd.login = "[email protected]" funciona perfectamente Cuando user1 o user2 tengo 0 líneas.

gracias por tu ayuda

Primer tema:Sql, obtenga el promedio de un grupo mientras escapa de la condición where

Respuestas a la pregunta(2)

Su respuesta a la pregunta