从具有父子关系的表中选择记录

时间:2018-10-10 05:04:16

标签: sql sql-server hierarchical-data recursive-query

我正在使用SQL-SERVER数据库。如何选择与“ padre”字段相关的所有记录?示例:

table with info

例如,选择与CODIGO='AA'记录相关的所有记录。

3 个答案:

答案 0 :(得分:0)

您没有指定正在使用的数据库以及表的名称,所以我要介绍一些通用的信息:

select *
from table_name
where padre='AA';

首先,您说“与padre相关的字段与clave='AA'冲突,所以以上是我的答案。我在下面的查询中添加了新的答案。以下是选择查询的查询codigo='AA'处的所有记录:

select *
from table_name
where codigo='AA';

答案 1 :(得分:0)

我假设您要查询“ AA”的所有后代。 在这种情况下,MS SQL-SERVER的解决方案是

with hh as (
  select table_name.* from table_name where codigo = 'AA'
  union all
  select table_name.* from hh join table_name on table_name.padre = hh.codigo
)

select * from hh

答案 2 :(得分:0)

这很好:

SELECT * FROM(SELECT * FROM articulo ORDER BY Padre,codigo)sorteado,(SELECT @pv:='AA')初始化在find_in_set(padre,@pv)和长度(@pv:= concat(@pv, ',',codigo));