链接表中的父和子记录的SQL连接
问题描述:
我努力创建一条SQL语句,该语句在单个查询中返回父和子记录。链接表中的父和子记录的SQL连接
这是我的表....
课程
COURSE_ID | COURSE_CODE
----------+------------
912689 | AUS_COURSE
912389 | AUS_FH1
912769 | AUS_FH2
912528 | AUS_SSMOC1
912293 | AUS_UNIT1
912295 | AUS_UNIT2
912303 | AUS_UNIT3
COURSE_LINKS
COURSE_ID_FROM | COURSE_ID_TO
---------------+-------------
912689 | 912293
912689 | 912295
912689 | 912303
所以你可以在我的链接表看到AUS_COURSE有3个儿童记录,AUS_UNIT1,AUS_UNIT2,并AUS_UNIT3
,我想我的查询以某种方式从COOURSE表中返回两个父母和孩子的记录,所以输出会是这样的......
COURSE_ID | COURSE_CODE
----------+------------
912689 | AUS_COURSE
912293 | AUS_UNIT1
912295 | AUS_UNIT2
912303 | AUS_UNIT3
我正在使用什么连接使用,并加入哪个字段上
非常感谢挣扎,
答
您可以通过使用(子女,父母)和独特的下降重复的,这样连接表:
SELECT distinct c.course_ID,c.course_code
FROM COURSE c
INNER JOIN COURSE_LINKS cl
ON(c.course_ID in(cl.course_id_from,cl.course_id_to))
答
您可以使用UNION ALL
本:
SELECT COURSE_ID, COURSE_CODE
FROM COURSE
WHERE COURSE_ID = 912689
UNION ALL
SELECT c1.COURSE_ID, c1.COURSE_CODE
FROM COURSE AS c1
JOIN COURSE_LINKS AS c2 ON c1.COURSE_ID = c2.COURSE_ID_TO
WHERE c2.COURSE_ID_FROM = 912689
非常感谢。这样做的技巧 – Konzy262