【问题标题】:Self-referencing table - how to get results as one table自引用表 - 如何将结果作为一张表
【发布时间】:2013-09-17 18:21:34
【问题描述】:

我有一张这样的桌子

请原谅它们由内部标准驱动的列名。我想知道的是如何查询这个自引用表,所以输出是这样的:

| PARENT REASON |    CHILD REASON  |
| ---------------------------------|
| Electrical    | Wire Broke       |
| Electrical    | Fuse Blown       |
| Mechanical    | Bad Gear         |
| Mechanical    | Bolt Broke       |

非常感谢您的帮助。

【问题讨论】:

  • 任何您需要处理更深入搜索的机会,例如电气 > 保险丝熔断 > 绝缘故障?公共表表达式 (CTE) 可以处理递归。

标签: sql sql-server self-referencing-table


【解决方案1】:
SELECT T2.strReason as [PARENT REASON], T1.strReason as [CHILD REASON]
FROM IngTable as T1
JOIN IngTable as T2
  ON T1.IngReasonParent = T2.IngReason

【讨论】:

  • var query = from T1 in IngTable join T2 in IngTable on T1.IngReasonParent = T2.IngReasonParent Select T2.strReason, T1.strReason 应该可以工作
【解决方案2】:

我相信你应该把它分解成一个类别表,但是......

SELECT SELECT a.strReason as [PARENT REASON], b.strReason as [CHILD REASON]
FROM table1 AS a 
INNER JOIN table1 as b ON b.lngReasonParent = a.lngReason 

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-11
    相关资源
    最近更新 更多