作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有 2 个相关的 SQL 表:
购买
id (PK),
code,
status (complete, void)
接收
id (PK),
code,
purchase_id (FK),
status (complete, void)
With Purchase
有很多Receiving
(一对多)
如果LEFT JOIN的结果是
----------------------------------------------------------------------------------------
|Purchase.id|Purchase.code|Purchase.status|Receiving.id|Receiving.code|Receiving.status|
----------------------------------------------------------------------------------------
| 1 | PO001 | complete | 1 | RG001 | complete | X HIDE
| 2 | PO002 | complete | 2 | RG002 | void | X HIDE
| 2 | PO002 | complete | 3 | RG003 | complete | X HIDE
| 2 | PO003 | complete | NULL | NULL | NULL | V SHOW
| 3 | PO004 | complete | 4 | RG004 | void | V SHOW
关键是我想显示“购买”,只有当“接收”状态不完整且为空时。
所以结果应该只显示 PO003 和 PO004。
PO002 不应显示,因为它已经具有完整的“接收”而 PO001 也不会显示,因为它已经有 1 个完整的“接收”。
我希望你们明白我的意思。我如何在 SQL 上查询它?
最佳答案
在您的查询中加入WHERE
条件。
SELECT p.id, p.code, p.status, r.id, r.code, r.status
FROM Purchase p
INNER JOIN Receiving r ON p.id = r.purchase_id
WHERE r.id IS NULL
AND r.status != 'complete'
关于sql - 如何在 PostgreSQL 中隐藏具有相同引用 ID 的不同行集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31828932/
我是一名优秀的程序员,十分优秀!