MySQL不在哪里

MySQL不在哪里,mysql,Mysql,我有一个名为Project的表,其项目数据如下 +--------+------------+------------+----------+--------+---------------+--------+ | In Num | pro_no_old | pro_no_new | pro_name | amount | budget_status | status | +--------+------------+------------+----------+--------+------

我有一个名为Project的表,其项目数据如下

+--------+------------+------------+----------+--------+---------------+--------+
| In Num | pro_no_old | pro_no_new | pro_name | amount | budget_status | status |
+--------+------------+------------+----------+--------+---------------+--------+
|      1 | pro1       |            | project1 | 200000 | original      |      1 |
|      2 | pro2       |            | project2 | 150000 | original      |      1 |
|      3 | pro3       |            | project3 | 300000 | original      |      1 |
|      4 | pro2       | pro4       | project4 | 100000 | revised       |      0 |
+--------+------------+------------+----------+--------+---------------+--------+
02专业名称Project4已通过修订从Project2变为Project4。然后我需要得到没有修改过的项目,比如Project2。换句话说,不需要得到一个修改过的项目的前一个项目。预期输出可能如下所示

+--------+------------+------------+----------+--------+---------------+--------+
| In Num | pro_no_old | pro_no_new | pro_name | amount | budget_status | status |
+--------+------------+------------+----------+--------+---------------+--------+
|      1 | pro1       |            | project1 | 200000 | original      |      1 |
|      3 | pro3       |            | project3 | 300000 | original      |      1 |
|      4 | pro2       | pro4       | project4 | 100000 | revised       |      0 |
+--------+------------+------------+----------+--------+---------------+--------+
03我使用以下查询来获得所需的输出

SELECT * FROM project WHERE('pro_no_old in (SELECT  pro_no_old FROM project where budget_status = "original"))
04但是没有得到预期的结果。有人能帮我吗

编辑后的所需输出
我不确定您的数据模型,但如果您只对pro_no_old的最后一个条目感兴趣

select * 
from t
where innum = (select max(innum) from t t1 where t1.pro_no_old = t.pro_no_old); 

+-------+------------+------------+----------+--------+---------------+--------+
| InNum | pro_no_old | pro_no_new | pro_name | amount | budget_status | status |
+-------+------------+------------+----------+--------+---------------+--------+
|     1 | pro1       | NULL       | project1 | 200000 | original      |      1 |
|     3 | pro3       | NULL       | project3 | 300000 | original      |      1 |
|     4 | pro2       | pro4       | project4 | 100000 | revised       |      0 |
+-------+------------+------------+----------+--------+---------------+--------+
3 rows in set (0.00 sec)

你试过了吗?你想到了什么?有什么问题吗?@轻量级在轨道上比赛。伊迪丝之后见。我很好奇——如果预算再次被修改,会发生什么?@P.Salmon。如果将项目2的预算从150000更改为100000,则新项目将不会分配给新项目。此修订版可以根据需要进行更多更改。您说您没有获得预期结果。你得到了什么结果?接下来您尝试了什么?如果我需要将project4修改为project5,金额为50000,那么可以在查询中更改什么。请。请参见我对原始问题的编辑
select * 
from t
where innum = (select max(innum) from t t1 where t1.pro_no_old = t.pro_no_old); 

+-------+------------+------------+----------+--------+---------------+--------+
| InNum | pro_no_old | pro_no_new | pro_name | amount | budget_status | status |
+-------+------------+------------+----------+--------+---------------+--------+
|     1 | pro1       | NULL       | project1 | 200000 | original      |      1 |
|     3 | pro3       | NULL       | project3 | 300000 | original      |      1 |
|     4 | pro2       | pro4       | project4 | 100000 | revised       |      0 |
+-------+------------+------------+----------+--------+---------------+--------+
3 rows in set (0.00 sec)