我很难理解以下问题:
查找技能C++编程所需技能所直接需要的所有技能的名称。>(例如,C++编程需要C编程,C编程需要读写)。
表SREQUIRED如下所示:


我所做的SQL查询是:
SELECT
s1.requires
FROM
srequired s1
INNER JOIN
srequired s2
ON
s1.sname = s2.requires
AND
s2.sname = 'C++ programming';注意:解决方案必须使用self-join实现。
我做得对吗?我正在使用SQL Plus和Oracle DB。谢谢。
发布于 2014-05-13 04:01:39
CONNECT BY PRIOR是您要寻找的内容:
SELECT sname,
requires,
LEVEL
FROM srequired
START WITH sname = 'C++ programming' CONNECT BY
PRIOR sname = requires
ORDER SIBLINGS BY sname;在这里阅读更多的分层查询:甲骨文
用于使用自连接的跨DBMS:MySQL中的层次查询
https://stackoverflow.com/questions/23622289
复制相似问题