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