У меня есть назначение на БД. У меня возникают проблемы с моими запросами. Я новичок в SQL. Вот мои таблицы:SQL-запросы для базы данных
CREATE TABLE Employee (
employee_name varchar(20) NOT NULL PRIMARY KEY,
street varchar(30) NOT NULL,
city varchar(20) NOT NULL
)
CREATE TABLE Works
(
employee_name varchar(20) NOT NULL,
department_name varchar(20) NOT NULL,
title varchar(10) NOT NULL,
salary int NOT NULL,
PRIMARY KEY (employee_name),
FOREIGN KEY (employee_name) REFERENCES Employee,
FOREIGN KEY (department_name) REFERENCES Department
)
CREATE TABLE Department
(
department_name varchar(20),
cityvarchar(20),
PRIMARY KEY (department_name)
)
CREATE table Manages(
employee_name varchar(20) not null,
manager_name varchar (20) not null,
PRIMARY KEY(employee_name),
FOREIGN KEY(employee_name) REFERENCES Employee
)
имена поиск сотрудника, которые живут в разных городах, от их отдела. Вот мой код:
SELECT E.employee_name
FROM Employee E
JOIN Department D
ON E.city = D.city
WHERE E.city <> 'Roma';
имена поиск сотрудника, которые живут в том же городе и на той же улице со своими менеджерами. Вот мой код:
SELECT E.employee_name
FROM Employee E
INNER JOIN Department D
ON E.city = D.city
INNER JOIN Manages M
ON E.employee_name = M.employee_name
WHERE city='Roma' AND street='Main street';
Что я делаю неправильно? Спасибо заранее! :)
Я не думаю, что «Рома» и «Главная улица» являются частью вопроса, на который вы пытаетесь ответить ... –
@NicolaFerraro Да, вы правы. Я ясно вижу свою ошибку. Спасибо :) – XhensB
Вам необходимо присоединиться к внешним ключам. Для вашего первого вопроса рассмотрите определения таблиц; что соединяет таблицу сотрудников с таблицей работ, а затем, что объединяет таблицу работ в таблицу отдела? Присоединитесь к этим клавишам и используйте предложение «Где» для фильтрации. –