需要在我的 SQL 查询中获取不同列的描述

Need to get description of a different column in my SQL query

我正在使用的 table 有 8 个不同的列,我正在使用三个名为 course_no、先决条件和描述的列。先决条件显示进入 course_no 所需的条件,描述当前显示 course_no 描述。然而,我需要在仍然显示 course_no 的同时获得先决条件的描述。我不确定该怎么做。我查找了内部连接,但它们似乎不是我要找的。这是 sql 语句只需要帮助弄清楚如何显示先决条件列而不是 course_no 列的描述。

SELECT course_no, prerequisite, description
FROM course

我认为join您要找的。也许:

select c.*, p.description as prerequisite_description
from course c left join
     course p
     on c.prerequisite = p.course_no;

这样更有意义,即使没有链接的先决条件,left join 也会记录课程,如果有多个匹配记录,这也会多次显示课程记录

SELECT c.course_no, c.description, NVL(p.description, '') as prerequisite_description
FROM course c 
    LEFT JOIN course p ON c.prerequisite = p.course_no;

如果每门课程只需要 1 个结果行,您可以对先决条件描述进行分组

SELECT c.course_no, c.description, NVL(LISTAGG(p.description, ', ') WITHIN GROUP (ORDER BY p.course_no), '') as prerequisite_description
FROM course c 
    LEFT JOIN course p ON c.prerequisite = p.course_no
GROUP BY c.course_no, c.description;