Выберите все из одной таблицы и определенные столбцы из другого SQL - PullRequest
0 голосов
/ 02 декабря 2018

Как я могу выбрать все из одной таблицы и определенных столбцов из другого при создании представления,

Например, я написал

CREATE VIEW NOT_IN_MAN_GLA_LND
AS 
     SELECT 
         E.EMPLOYEE_ID, E.TITLE, E.FIRST_NAME, E.LAST_NAME, 
         E.HOUSE_NO, E.ADDRESS, E.POSTCODE, E.TELE_NO, E.START_DATE, 
         P.CITY, P.POST_CODE
     FROM 
         EMPLOYEE E, POSTCODE P
     WHERE 
         E.POSTCODE = P.POSTCODE
         AND P.CITY NOT IN ('MAN', 'GLA', 'LND');

Поэтому вместо записи всего столбца изВ любом случае, там есть таблица сотрудников. Я могу просто выбрать их все, при этом выбирая только две таблицы из таблицы почтовых индексов.

Ответы [ 2 ]

0 голосов
/ 02 декабря 2018

Лучший ответ - использовать правильный, явный синтаксис STANDARD JOIN:

CREATE VIEW NOT_IN_MAN_GLA_LND AS
    SELECT E.*, P.CITY, P.POST_CODE
    FROM EMPLOYEE E JOIN
         POSTCODE P
         ON E.POSTCODE = P.POSTCODE
    WHERE P.CITY NOT IN ('MAN', 'GLA', 'LND');

Если вы хотите включить в результаты сотрудников - даже тех, у кого нетсоответствующий почтовый индекс - тогда:

CREATE VIEW NOT_IN_MAN_GLA_LND AS
    SELECT E.*, P.CITY, P.POST_CODE
    FROM EMPLOYEE E LEFT JOIN
         POSTCODE P
         ON E.POSTCODE = P.POSTCODE
    WHERE P.CITY NOT IN ('MAN', 'GLA', 'LND') OR
          P.CITY IS NULL;
0 голосов
/ 02 декабря 2018
create or replace VIEW NOT_IN_MAN_GLA_LND
AS SELECT E.*, P.CITY, P.POST_CODE as P_POST_CODE

FROM EMPLOYEE E, POSTCODE P

WHERE E.POSTCODE = P.POSTCODE

AND P.CITY NOT IN ('MAN', 'GLA', 'LND');

for example dept nd emp table:

create or replace view ns_1_v as
select e.*,d.deptno as d_dname,d.dname 
from scott.emp e ,scott.dept d
where
e.deptno=d.deptno;

вы должны указать псевдонимы для имен столбцов, где в обеих таблицах есть общее имя, в противном случае будет выброшено dupllicaate column name error, в вашем случае postcode обычно, поэтому укажите для него псевдоним

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...