首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MySQL离开Join不像我预期的那样工作

MySQL离开Join不像我预期的那样工作
EN

Stack Overflow用户
提问于 2017-05-26 08:14:10
回答 4查看 1.2K关注 0票数 0

表名:功能

代码语言:javascript
复制
+--------+----------+
| fea_id | fea_name |
+--------+----------+
|      1 | Price    |
|      2 | Height   |
|      3 | Weight   |
+--------+----------+

表名: property_meta

代码语言:javascript
复制
+----+--------+--------+-------+
| id   | fea_id | pro_id | value |
+----+--------+--------+-------+
|  100 |      1 |    300 |  2500 |
|  200 |      2 |    300 |   300 |
|  
+----+--------+--------+-------+

我的疑问

SELECT * FROM feature LEFT JOIN property_meta ON feature.fea_id = property_meta.fea_id where property_meta.pro_id=300 GROUP by feature.fea_id ORDER BY feature.fea_id ASC

预期结果

代码语言:javascript
复制
+--------+--------+-------+
| fea_id | pro_id | value |
+--------+--------+-------+
|      1 |    300 | 2500  |
|      2 |    300 | 300   |
|      3 |    300 | NULL  |
+--------+--------+-------+

但是我得到的是没有最后一行,我需要最后一行,也需要。如何修改我的查询以获得最后一行?

这意味着我需要获得特性表的所有行,即使属性元表中没有值。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2017-05-26 08:17:52

where property_meta.pro_id=300把你的left join变成一个inner join。如果将其添加到on子句中,则它正在工作:

代码语言:javascript
复制
SELECT * FROM feature LEFT JOIN property_meta ON feature.fea_id = property_meta.fea_id and property_meta.pro_id=300 GROUP by feature.fea_id ORDER BY feature.fea_id ASC
票数 3
EN

Stack Overflow用户

发布于 2017-05-26 08:18:36

代码语言:javascript
复制
SELECT * FROM feature LEFT JOIN property_meta ON feature.fea_id = property_meta.fea_id and property_meta.pro_id=300 GROUP by feature.fea_id ORDER BY feature.fea_id ASC

将where条件放入联接条件,因为where条件限制结果,而联接条件仅限制联接表

票数 2
EN

Stack Overflow用户

发布于 2017-05-26 08:20:01

代码语言:javascript
复制
SELECT * FROM feature LEFT JOIN property_meta 

ON feature.fea_id = property_meta.fea_id 
   AND property_meta.pro_id=300 -- <-- need to move this condition here or the where clause will remove the last row

GROUP by feature.fea_id ORDER BY feature.fea_id ASC
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44196762

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档