我正在尝试连接 2 个表并为每个项目获取一行。评级的默认值为 45。每次类别中存在不同的评级时,每个项目行都会重复。下面是一个示例架构、数据和结果。
表1
--------------------------
奥菲德|项目 |类别
--------------------------
1 |项目1 |猫1
2 |项目2 |猫1
3 |项目3 |猫1
表2
----------------------------
奥菲德|评级|类别
----------------------------
1 | 37 | 37猫1
2 | 42 | 42猫1
3 | 45 | 45猫1
结果
------------------------------------------------
奥菲德|项目 |评级|类别
------------------------------------------------
1 |项目1 | 37 | 37猫1
1 |项目1 | 42 | 42猫1
1 |项目1 | 45 | 45猫1
2 |项目2 | 37 | 37猫1
2 |项目2 | 42 | 42猫1
2 |项目2 | 45 | 45猫1
3 |项目3 | 37 | 37猫1
3 |项目3 | 42 | 42猫1
3 |项目3 | 45 | 45猫1
预期结果
------------------------------------------------
奥菲德|项目 |评级
------------------------------------------------
1 |项目1 | 37
2 |项目2 | 42
3 |项目3 | 45
查询:
SELECT p.ofid,p.item,r. rating FROM table1 AS p INNER JOIN table2 AS r ON p.category = r.category WHERE p.category = "cat1"GROUP BY p.ofid,p.category, r.评级
我尝试过添加 DISTINCT、JOIN、LEFT JOIN、RIGHT JOIN...有帮助吗?
提前致谢。
最佳答案
根据您想要的预期结果,我相信您加入了错误的领域。下面应该可以工作。
Select
p.ofid,
p.item,
r.rating
From table1 p
Inner Join table2 r On r.ofid = p.ofid
where p.category ="cat1"
关于mysql - SQL JOIN 重复行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8146388/