【发布时间】:2021-10-26 18:17:24
【问题描述】:
您好,我正在处理一个理论问题。假设我有这两个表
订单表
| Entry | Order# | DatePlaced | Type |
|---|---|---|---|
| 2001 | 5 | 2021-05-03 | C |
状态表
| Entry | Order# | Status | Date | Deleted |
|---|---|---|---|---|
| 2001 | 5 | S | 2021-05-04 | 0 |
| 2002 | 5 | D | 2021-05-05 | 0 |
所以我需要能够得到这个
预期表
| Entry | Order# | DatePlaced | Type | Status | Date | Deleted |
|---|---|---|---|---|---|---|
| 2002 | 5 | 2021-05-03 | C | D | 2021-05-05 | 0 |
如果我可以离开加入数据,这将相当容易。问题是代码中的sql已经这样写了。这些表是根据条目连接的。每次订单出现新状态时,订单表中的条目都会更新,但交付时除外。对于代码的依赖程度,我不能简单地更新下面的初始查询。我想知道是否有一个不使用 SET 的连接或方式,我可以根据订单获得最后一个状态?我在想我们可以检查订单,然后检查条目,但我不确定如何将其与当前表(我们从查询中获得的数据)连接起来
SELECT * FROM orders or
LEFT JOIN status st ON or.entry = st.entry
WHERE st.deleted = 0;
这会导致这个
当前表
| Entry | Order# | DatePlaced | Type | Status | Date | Deleted |
|---|---|---|---|---|---|---|
| 2001 | 5 | 2021-05-03 | C | S | 2021-05-04 | 0 |
有没有办法将状态表与当前表连接起来,以便状态列成为我所期望的?
【问题讨论】:
标签: mysql