mysql - SQL JOIN 重复行

标签 mysql

我正在尝试连接 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/

相关文章:

mysql - 使用触发器更新同一服务器上另一个数据库的表

php - 需要帮助在我的 API 上设置点击限制

php - 什么时候应该使用不是二进制(1 或 0)值的复选框值?

mysql - 根据现有表中的值为表生成另一列

SQL View 。我需要用它来提高性能吗?

mysql - 如何显示 MySQL 中不超过一天的行?

php - mysql select语句的问题

php - 回显变量一次

php - 如果结果集为空,MySQL 和 pdo::fetchColumn() 返回什么?

python mysql 重复 key 更新错误