有人已经帮助我完成了这个查询,但我做了一个调整,我遇到了一个问题:
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 = "user1@tyd.fr"
并且它仅在tyd.login = "user3@tyd.fr"
哪个是较低的 id 时才有效。不适用于 user1 或 user2...我只是不知道为什么...!如果我按 tyd.login 分组,它也可以工作,但在这种情况下,AVG 和 COUNT 函数只能在一行上工作......
这是表格:
id id_marchand id_product login price amount delay step time
29 1 1 user3@tyd.fr 344 1 0 1 1343297500
120 1 1 user1@tyd.fr 54 1 0 1 1343297504
109 1 1 user10@tyd.fr 34 1 0 1 1343298598
当HAVING tyd.login = "user3@tyd.fr"
它完美运行时。当 user1 或 user2 我得到 0 行。
感谢您的帮助