MYSQL问题 - 加入还不够

时间:2012-09-19 15:37:53

标签: mysql join

我有3个表:productsbuyersratings

买家可以为我的产品评分,这将在评分中保存为一行(buyer_idproduct_id),买家可以标记一种产品(每个买家最多一个最喜欢的产品)最喜欢的(ratings中的二进制标志)。

我有一份所有买家的报告,想要在报告的每一行添加买家最喜欢的产品的名称(如果有的话),我试过这个:

SELECT b.*, p.name 
FROM buyers b, products p 
LEFT JOIN ratings r 
    ON r.buyer_id = b.id 
    and r.product_id = p.id 
    and r.isFav=1 

不幸的是,这会引发错误('on子句'中的未知列'b.id')。所以我觉得我走错了路。 有什么东西可以帮助我完成我需要的东西吗?

1 个答案:

答案 0 :(得分:4)

如果没有看到任何数据,最大的问题之一就是混合JOIN语法,我可能会这样重写:

SELECT b.*, p.name 
FROM buyers b
LEFT JOIN ratings r 
    ON b.id = r.buyer_id
LEFT JOIN  products p 
    ON r.product_id = p.id 
WHERE r.isFav=1