sql tendo apenas a primeira linha registrada na tabela e eu quero tudo

Alguém já me ajudou com essa consulta, mas fiz uma adaptação e tenho um 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]"

e só funciona quandotyd.login = "[email protected]" qual é o menor id. não funciona com user1 ou user2 ... Eu não consigo entender por que ...! Também funciona se eu agrupar por tyd.login mas, neste caso, a função AVG e COUNT funciona apenas em uma única linha ...

Aqui está a mesa:

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

QuandoHAVING tyd.login = "[email protected]" funciona perfeitamente. Quando user1 ou user2 eu tenho 0 linhas.

Obrigado pela ajuda

Primeiro assunto:Sql, pegue a média em um grupo enquanto estiver fugindo da condição where

questionAnswers(2)

yourAnswerToTheQuestion