2017-02-07 6 views
-3

Я новичок в SQL Developer и у меня есть некоторые проблемы, практика бизнеса, чтобы помочь построить свои знания ..Sql Developer - Я очень новый (Учимся некоторые основы)

Что им пытаются сделать, у меня есть таблица под названием «VMStaff» со столбцами «Название», «Департамент», «Любимый цвет», «Пол», «Роль работы» и «Имя менеджера» .. В этой таблице у некоторых менеджеров есть записи в разделе «Имя менеджера» и «Имя»

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

Я дважды пытался сделать эту работу, смотрите ниже -

NUMBER1 -

SELECT vmstaff1.name, vmstaff2."FAVOURITE COLOUR" 
from vmstaff name, vmstaff "Favourite Colour" 
Left JOIN vmstaff1 vmstaff2 
on vmstaff1."Manager Name" = Vmstaff2.Name 

НОМЕР 2 -

Select VM1.Name, VM2."Favourite Colour" 
From vmstaff.Name as VM1 
Inner Join vmstaff."Favourite Colour" as VM2 
on VM1."Manager Name" = VM2."Favourite Colour" 

я Im не хватает понимания того, как присоединиться к столу и как использовать псевдоним. В попытке NUMBER1 я получаю сообщение об ошибке Invalid SQL Statement и попытка номер 2 я получаю сообщение об ошибке SQL команда не правильно закончилась

+1

Покажите свою попытку, лучше учиться (потому что мы можем исправить конкретную проблему) и быстрее для нас (потому что у нас нет нужно повторить то, что вы уже знаете ...) –

+0

Не пропуская SQL, который вы пробовали. – duffymo

+0

SQL-запрос определяется сервером базы данных (в данном случае Oracle), а не клиентом (разработчиком SQL). В любом случае вы должны отредактировать вопрос и поделиться соответствующей информацией: структура таблицы, выборочные данные, ожидаемый результат и (что важно), что вы получили до сих пор, и то, как он не отвечает вашим потребностям. –

ответ

1

Вы будете соединяющими к столу снова:

select t1.name, t2.favouritecolour as man_fav_col 
from Table1 t1 
left join Table1 t2 
    on t1.managername = t2.name 

Использование псевдонима позволяет использовать ту же таблицу, как если бы она была другой. В этом случае каждый name обеспечивает любимый цвет и действует как первичный ключ, тогда managername по существу является внешним ключом в той же таблице.

Теперь причина для left join вместо inner join? Главный босс не будет иметь менеджера, но, возможно, его не захотят исключить ...