首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >获取具有特定revision_status的行

获取具有特定revision_status的行
EN

Stack Overflow用户
提问于 2017-12-30 10:27:18
回答 1查看 35关注 0票数 0

我使用mysql,我有两个表:

产品表:

代码语言:javascript
复制
| id | name      | prices | revision_id |
|----|-----------|--------|-------------|
| 1  | Produkt 1 | 10     | 1           |
| 2  | Produkt 1 | 4      | 2           |
| 3  | Produkt 1 | 2      | 3           |
| 4  | Product 2 | 42     | 4           |
| 5  | Produkt 2 | 43     | 5           |
| 6  | Produkt 3 | 78     | 6           |

每种产品都有价格变动。这就是为什么名称仍然相同,但产品有不同的价格。

修订表:

代码语言:javascript
复制
| id | revision_status |
|----|-----------------|
| 1  | 1               |
| 2  | 0               |
| 3  | 0               |
| 4  | 1               |
| 5  | 0               |
| 6  | 1               |    

在修订表中,0表示打开的更改,而不是批准的更改。1表示-关闭-一个批准的更改。

预期结果:

代码语言:javascript
复制
| id | name      | prices | revision_id | revision_status |
|----|-----------|--------|-------------|-----------------|
| 1  | Produkt 1 | 10     | 1           | 1               |
| 2  | Produkt 1 | 4      | 2           | 0               |
| 3  | Produkt 1 | 2      | 3           | 0               |
| 4  | Product 2 | 42     | 4           | 1               |
| 5  | Produkt 2 | 43     | 5           | 0               |

基本上,我希望所有有修订的产品-一个0的revision_status在它上,看看哪些产品实际上有修订。

例如:Product 3没有任何价格变化,因此它不应该出现在最终结果中。

我尝试了以下几点:

代码语言:javascript
复制
select *
  from product
  JOIN revisions 
    on product.revisions_id = revisions.id 
 ORDER 
    BY product.name

然而,我仍然把Product 3放在我的桌子上,我不知道如何获得所有revision_status为0的产品。

我非常感谢你的回复!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-12-30 11:14:52

在我的解释中,您正在寻找有多个版本的产品。只对revision_status = 0进行过滤不会产生预期的结果。以下查询可能会回答您的问题(寻找那些有超过一个版本的产品):

代码语言:javascript
复制
SELECT *
FROM product AS p
INNER JOIN revisions AS r ON p.revision_id = r.id 
WHERE p.name IN (
  SELECT p.name
  FROM product AS p
  INNER JOIN revisions AS r ON p.revision_id = r.id 
  GROUP BY p.name
  HAVING COUNT(r.revision_status) > 1)
ORDER BY p.name

这会产生你预期的结果。参见木琴的示例。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48033029

复制
相关文章

相似问题

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