SELECT tp.id as projectId,tp.project_name as projectName,tp.project_type as projectType, tipp.project_status as projectStatus FROM tzgl_project tp left join tzgl_investment_plan_project tipp on tipp.project_id = tp.id left join tzgl_investment_plan tip on tipp.plan_id = tip.id and tip.plan_year = 2023 and tip.plan_type in (1,3) where tp.id = '429158807596360069' and tip.is_deleted = 0 优化sql语句,实现当tipp.plan_type=1和tipp.plan_type=3都有值的时候,只查询到tipp.plan_type=3的一条值
时间: 2024-03-11 08:48:16 浏览: 26
可以使用子查询的方式来实现:
```
SELECT tp.id as projectId, tp.project_name as projectName, tp.project_type as projectType,
(SELECT project_status FROM tzgl_investment_plan_project WHERE project_id = tp.id AND plan_id = tip.id AND plan_type = 3 limit 1) as projectStatus
FROM tzgl_project tp
LEFT JOIN tzgl_investment_plan_project tipp ON tipp.project_id = tp.id
LEFT JOIN tzgl_investment_plan tip ON tipp.plan_id = tip.id AND tip.plan_year = 2023 AND tip.plan_type IN (1,3)
WHERE tp.id = '429158807596360069' AND tip.is_deleted = 0
```
这样可以避免查询出多条符合条件的记录,只查询出符合条件的一条。
相关问题
修改下面代码,根据“projectId”获取“projectName”:String projectName = projectMap.get(projectId); projectCondition.setProjectName(projectName);
Assuming that "projectMap" is a Map object with projectId as key and projectName as value, the code to retrieve the projectName based on the projectId would look like this:
```
String projectName = projectMap.get(projectId);
projectCondition.setProjectName(projectName);
```
This code retrieves the value (projectName) corresponding to the key (projectId) from the projectMap using the get() method. The retrieved projectName is then set in the projectCondition object using the setProjectName() method.
为什么不能通过下面代码获取“projectName”:String projectName = projectMap.get(projectId); projectCountVO.setName(projectName);
这可能是因为`projectMap`中不存在对应`projectId`的键值对,或者对应的`projectName`值为`null`。你可以先检查一下`projectMap`是否包含`projectId`键,如果包含的话再尝试获取`projectName`的值。另外,建议添加一些空值或不存在值的判断,避免出现空指针异常。例如:
```
if (projectMap.containsKey(projectId)) {
String projectName = projectMap.get(projectId);
if (projectName != null) {
projectCountVO.setName(projectName);
} else {
// 处理 projectName 为空的情况
}
} else {
// 处理 projectMap 中不存在 projectId 的情况
}
```
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![doc](https://img-home.csdnimg.cn/images/20210720083327.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)