根据您提供的查询语句和问题描述,可以看出您的查询逻辑是想要获取指定xzqdm(行政区代码)的所有记录,包括父级和子级数据。然而,您在使用UNION时遇到了问题,只查询到了一条父级数据和子级数据。

问题可能出在UNION ALL操作符的使用上。UNION ALL操作符会将两个查询的结果合并在一起,但不会去除重复的记录。根据您的需求,您可能希望使用DISTINCT关键字来去除重复的记录。

下面是修改后的查询语句,使用DISTINCT关键字来去除重复的记录:

select distinct *
from (
  select *
  from guangdong_sfdmap 
  where xzqdm = 441424141230 
  
  union all
    
  select c.*
  from guangdong_sfdmap c 
  join guangdong_sfdmap t 
  on c.id = t.parent_id
  where t.xzqdm = 441424141230 and t.zzz0006 = 0
) as tb 
order by tb.parent_id, tb.id desc;

请注意,修改后的查询语句中使用了DISTINCT关键字来去除重复的记录。如果您仍然只查询到了一条父级数据和子级数据,可能是因为数据本身的原因,即只有一条满足条件的父级数据和子级数据。在这种情况下,您可以进一步检查数据是否符合预期,并确保表中的数据逻辑正确。

SQL 查询优化:解决 UNION失效 只查询出子级数据跟一条父级数据的问题

原文地址: https://www.cveoy.top/t/topic/fies 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录