在SQL SQL SQL开发人员

时间:2016-11-22 01:08:26

标签: sql oracle-sqldeveloper

所以,我正在尝试运行一个查询,要求我将两个单独的表连接在一起,但我需要将一些信息合并到一个列中,并标记它来自哪个表。

喜欢这个......

    table_1            table_2
    teacher_name       student_name
    Steve              Jimmy
    George             Craig

    Output:

    NAME:       Title:
    Steve       Teacher
    George      Teacher
    Jimmy       Student
    Craig       Student

这是我到目前为止所拥有的......

    SELECT x.first_name, x.last_name, y.first_name, y.last_name, x.city, y.city
    FROM (SELECT i.first_name, i.last_name, z.city, z.zip
    FROM instructor i JOIN
    zipcode z
    ON z.zip = i.zip
    WHERE z.zip = 10025) x

        LEFT OUTER JOIN

            (SELECT s.first_name, s.last_name, z.city, z.zip
            FROM student s JOIN zipcode z
            ON s.zip = z.zip
            WHERE z.zip = 10025) y
            ON y.zip = x.zip

基本上,我需要做的就是将x和y查询中的名字和姓氏组合成一个列,以及两者中的城市,然后创建一个标识该人是否的人的列来自讲师表(x)或学生表(y)

更新

所以我最终放弃了子查询和外连接,我得到了查询工作......这是我最终得到的代码。非常感谢你!

    SELECT i.first_name AS first_name, i.last_name AS last_name, 'Teacher' AS role
    FROM instructor i JOIN zipcode z
    ON i.zip = z.zip
    WHERE z.zip = 10025

    UNION ALL

    SELECT s.first_name AS first_name, s.last_name AS last_name, 'Student' AS role
    FROM  student s JOIN zipcode z
    ON s.zip = z.zip
    WHERE z.zip = 10025
    ORDER BY role, last_name, first_name;

1 个答案:

答案 0 :(得分:0)

SELECT teacher_name + teacher_last as Name, city, 'Teacher' as source
FROM TeacherTable       
UNION ALL
SELECT student_name + student_last as Name, city, 'Student' as source
FROM StudentTable