如何比较来自不同列和不同行但同一张表的值?

Posted

技术标签:

【中文标题】如何比较来自不同列和不同行但同一张表的值?【英文标题】:How do I compare values from different column and different row but same table? 【发布时间】:2015-05-10 22:01:11 【问题描述】:
ID Name FatherID Birthyear

1   Bart    NULL     1756    
2   Franz   1        1796
3   Josef   2        1835    
4   Zohan   3        1887

假设我有这张表,我想知道 Zohan 是否是 Bart 的儿子,如果我将“FatherID”列中的值与之前行的 ID 进行比较,直到我到达 Bart .但是如何比较同一个表中不同行和列的值

【问题讨论】:

见***.com/questions/8103861/explain-self-join 【参考方案1】:

你可以自己加入表格:

SELECT s.name AS son_name, f.name AS father_name
FROM   mytable s
JOIN   mytable f ON s.fatherID = f.id
-- possibly add a where clause with conditions on son/father names

【讨论】:

我相信我需要在 PL/SQL 中使用循环来解决这个问题,但您仍然回答了这个问题。谢谢!

以上是关于如何比较来自不同列和不同行但同一张表的值?的主要内容,如果未能解决你的问题,请参考以下文章

如何计算同一张表的两个不同行中的值?

在一个表中的不同行和不同列中查找相同的值SQL

添加两个变量,其中包含来自同一数据库的两个不同表的值

如何连接来自多个表的数据,保留所有不同的值

比较来自两个不同表的两列的逗号分隔值

根据数据库的一张表去更新另一张表的值