Я новичок в SQL и провожу последние пару дней, пытаясь разобраться в этой проблеме.
У меня есть эти 2 таблицы:
(Извините, я не уверен, как правильно сделать отступ или табулировать таблицы)
**Table:**
StaffNo Name DeptNo
DAX001 Joe DA001
DAX002 Eric DA001
DAX003 James DA002
DAX004 Sarah DA002
DAX005 Simon DA003
DAX006 Liam DA003
DAX007 Denis DA004
DAX008 Lisa DA004
DAX009 Eoin DA005
DAX010 Niall DA005
DAX011 Richard DA006
DAX012 Steven DA006
**Department**
DeptNo DeptName
DA001 Security
DA002 Hospitality
DA003 Check-in
DA004 Airport Assistant
DA005 Airport Police
DA006 Maintenance
Я пытаюсь выяснить запрос, который приведет к этому выводу.
**Output**
Name DeptName
Joe Security
Eric Security
James Hospitality
Sarah Hospitality
Simon Check-in
Liam Check-in
Denis Airport Assistant
Lisa Airport Assistant
Eoin Airport Police
Niall Airport Police
Richard Maintenance
Steven Maintenance
Я сделал DeptNo из таблицы Department как первичный ключ и уникальный.
Я сделал DeptNo из таблицы персонала внешним ключом, ссылаясь на DeptNo
из таблицы отдела.
Среди других попыток я попробовал следующее, и ни одна из них не сработала.
Попытка 1.
SELECT Staff.Name, Department.DeptName
FROM Staff, Department
WHERE Department.DeptNo = Staff.DeptNo;
Попытка 2.
SELECT Staff.Name, Department.DeptName
FROM Staff JOIN Department
WHERE Department.DeptNo = Staff.DeptNo;
Попытка 3.
SELECT Staff.Name, Department.DeptName
FROM Staff LEFT OUTER JOIN Department
WHERE Department.DeptNo = Staff.DeptNo;
Попытка 4.
SELECT Staff.Name, Department.DeptName
FROM Staff RIGHT OUTER JOIN Department
WHERE Department.DeptNo = Staff.DeptNo;
Когда я пытался использовать ...
SELECT Staff.Name, Department.DeptName
FROM Staff, Department
WHERE Department.DeptNo = "DAA002"
AND Staff.DeptNo = "DAA002";
.. Я получаю список всех сотрудников с гостеприимством рядом с ними, а не список из двух имен, которые должны иметь "Гостеприимство" рядом с ними.
Любая помощь приветствуется и спасибо заранее.
UPDATE:
Я перепробовал все ваши предложения до и после удаления внешнего ключа.
Перед удалением внешнего ключа я получал по большей части:
выход
Имя DeptName
Джо Секьюри
Эрик Секьюри
Джеймс Секьюрити
Сара Security
Саймон Секьюрити
Лиам Секьюрити
Денис Секьюри
Лиза Секьюрити
Eoin Security
Найл Секьюрити
Ричард Секьюри
Стивен Security
После удаления внешнего ключа я получаю:
Joe Security
Джо Гостеприимство
Джо Регистрация
Помощник по аэропорту Джо
Полиция аэропорта Джо
Джо Техническое обслуживание
Эрик Секьюри
Эрик Гостеприимство
Эрик Регистрация
Эрик Ассистент Аэропорта
Эрик Аэропорт Полиция
Эрик Техническое обслуживание
Джеймс Секьюрити
Джеймс Гостеприимство
Регистрация Джеймса
Помощник по аэропорту Джеймса
Аэропорт Джеймса
Джеймс Техническое обслуживание
Сара Security
Сара Гостеприимство
Сара регистрация
Помощник Сары Аэропорт
Полиция аэропорта Сары
Обслуживание Сары
Саймон Секьюрити
Симон Гостеприимство
Регистрация Саймона
Помощник аэропорта Саймона
Аэропорт Симона
Саймон Техническое обслуживание
Лиам Секьюрити
Лиам Гостеприимство
Лиам Регистрация
Помощник аэропорта Лиама
Полиция аэропорта Лиама
Лиам Техническое обслуживание
Денис Секьюри
Денис Гостеприимство
Денис Заезд
Денис Ассистент аэропорта
Полиция аэропорта Денис
Денис Техническое обслуживание
Лиза Секьюрити
Лиза Гостеприимство
Регистрация Лизы
Помощник аэропорта Лизы
Полиция аэропорта Лизы
Лиза Техническое обслуживание
Eoin Security
Эойн Гостеприимство
Eoin Регистрация
Ассистент аэропорта Эойн
Полиция аэропорта Эойн
Обслуживание Eoin
Найл Секьюрити
Найл Гостеприимство
Регистрация Найла
Помощник Аэропорта Найла
Полиция Аэропорта Найла
Найл Техническое обслуживание
Ричард Секьюри
Ричард Гостеприимство
Ричард Регистрация
Ричард Ассистент Аэропорта
Полиция аэропорта Ричард
Ричард Техническое обслуживание
Стивен Security
Стивен Гостеприимство
Регистрация Стивена
Стивен, ассистент аэропорта
Полиция Аэропорта Стивена
Стивен Техническое обслуживание
Пока что помогаем.