MySQL如何在查询时返回非条件列的其他目标字段
解决方案
你可以通过以下两种方式实现需求,核心逻辑是将符合条件的program_ID反向匹配PROJECTS表的project_ID字段,取出对应的title:
方案1:基于原有IN查询改造(改动最小,易理解)
SELECT DISTINCT title FROM PROJECTS WHERE project_ID IN ( SELECT DISTINCT program_ID FROM PROJECTS WHERE program_ID IN (SELECT DISTINCT project_ID FROM INTERDEPENDENCE) )
方案2:JOIN关联写法(数据量大时执行效率更高)
SELECT DISTINCT p.title FROM PROJECTS p INNER JOIN ( SELECT DISTINCT p_sub.program_ID FROM PROJECTS p_sub INNER JOIN INTERDEPENDENCE i ON p_sub.program_ID = i.project_ID ) t ON p.project_ID = t.program_ID
结果说明
使用你提供的示例表测试,最终返回的符合要求的title为:ABC、DEF。
内容的提问来源于stack exchange,提问作者newbieLeaf
相关产品推荐
相关产品推荐

