【发布时间】:2011-12-30 02:09:47
【问题描述】:
我正在尝试加入 2 个表并为每个项目获取一行。评分的默认值为 45。每当一个类别中有不同的评分时,每个项目行都会重复。下面是一个示例架构、数据和结果。
表 1
--------------------------
身份证 |项目 |类别
--------------
1 |项目1 |猫1
2 |项目2 |猫1
3 |项目3 |猫1
表 2
---------------------------
身份证 |评级 |类别
---------------
1 | 37 |猫1
2 | 42 |猫1
3 | 45 |猫1
结果
------------------------------------
身份证 |项目 |评级 |类别
------------------------------------------------
1 |项目1 | 37 |猫1
1 |项目1 | 42 |猫1
1 |项目1 | 45 |猫1
2 |项目2 | 37 |猫1
2 |项目2 | 42 |猫1
2 |项目2 | 45 |猫1
3 |项目3 | 37 |猫1
3 |项目3 | 42 |猫1
3 |项目3 | 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.rating
我尝试添加 DISTINCT、JOIN、LEFT JOIN、RIGHT JOIN.... 有帮助吗?
提前致谢。
【问题讨论】:
-
请注意,您的“预期结果”有四列,而您的选择语句仅选择三列。我认为这是一个错字。
-
非常正确。已编辑。谢谢你的收获。
标签: mysql