首页 文章

将单个列连接到两个单独的列中[重复]

提问于
浏览
0

这个问题在这里已有答案:

我有一个 person 表来存储人名:

personid    firstname   lastname
526         Joe         Burnaby
527         Andy        Brandt
528         Ben         Oxfold

这些人员存储在 customeremployee 表中

customerid  personid
745         526
746         527

employeeid  personid
628         528

然后有一个 training 表,用于存储每列

trainingid  trainerid   customerid  rating
900         628         745         4
901         628         751         2

如何编写显示两个名称的Select?预期的输出应该是

Trainer     Customer    Rating
Ben Oxfold  Joe Burnaby 4
Ben Oxfold  Andy Brandt 2

我不知道如何为这个写一个Select,因为我碰到了我选择的列中的一个墙:

SELECT 
person.firstname||person.lastname AS "Trainer",
person.firstname||person.lastname AS "Customer",
rating
FROM training
JOIN employee ON training.trainerid=employee.employeeid
JOIN customer ON training.customerid=customer.customerid
JOIN person ON employee.personid=person.personid
JOIN person ON customer.personid=person.personid;

我试过这个,但显然它只会显示你在两行中首先加入的人 .

1 回答

  • 1

    您应该使用右连接子句的别名连接person表两次

    SELECT   p1.firstname||' '||p1.lastname AS Trainer
           , p2.firstname||' '||p2.lastname AS Customer
           , t.rating
    FROM training t 
    INNER JOIN  employee e ON e.employeeid = t.trainerid 
    INNER JOIN customer c ON c.customerid = t.customerid 
    INNER JOIN person p1 ON p1.personid = e.personid 
    INNER JOIN person p2 ON p2.personid = c.personid
    

相关问题