Сгенерировать таблицу подключений в SQL

#sql #oracle

#sql #Oracle

Вопрос:

Я искал это и не нашел решения, которое было бы применимо к моему сценарию.

Я создаю базу данных разработчиков игр и хочу сгенерировать таблицу подключений:

У меня есть следующее:

 Employee
(
    name, date of birth, department they work at, task they do
)

Department
(
    department name
)

Task
(
    task name
)
  

и мне нужно сгенерировать таблицу подключений, которая показывает, какой department вклад в который task вносит. Я бы сделал это, проверив для каждого employee их department (только один) и task (также только один) и после совпадения, department способствует этому task .

Это идея, но я должен понять, как ее закодировать с помощью Oracle

Комментарии:

1. Что вы подразумеваете под «таблицей подключений»? является ли это таблицей txn или выходной таблицей, в которой хранятся данные из трех таблиц выше?

2. Извините, что сбиваю с толку. Я изучаю этот предмет на своем родном языке, и прямой перевод учителей на английский, по-видимому, не самый лучший. При рисовании диаграммы E / R это соединение будет иметь форму ромба. Итак, таблица, которая сообщает, какие соединения существуют между двумя таблицами сущностей.

Ответ №1:

 SELECT DISTINCT "department they work at", "task they do"
  FROM Employee;
  

Комментарии:

1. Да, это четкий ответ, спасибо, что поделились. Теперь я только хотел бы знать, как присвоить значения таблице?

2. ссылка Я пытаюсь это сделать таким образом, но я получаю ошибки типа not enough values

3. Еще один комментарий, я решил его, я просто удалил явно бесполезный столбец из моей таблицы. Дополнительная помощь не требуется, спасибо за всю помощь.

Ответ №2:

Сначала вам следует разработать диаграмму сущность-взаимосвязь, в которой перечислены сущности, которые вы используете, и с какими атрибутами (и какими первичными ключами), а также отношения между этими сущностями. Отношения могут быть: 1-к-1, 1-ко-многим, многие-к-1 и многие-ко-многим. В последнем случае (отношение M:N) реализация в таблицах базы данных требует дополнительной таблицы для записи такого отношения M:N. Способ реализовать отношение 1: N в таблице заключается в добавлении внешнего ключа в дочерней таблице к первичному ключу родительской таблицы.

РЕДАКТИРОВАТЬ: Я вижу, что вы предоставили некоторые подробности, и теперь ясно, что таблица EMPLOYEE на самом деле является таблицей подключений, поэтому вы могли бы просто запросить эту таблицу и показать DEPTID и TASKID (оба первичных ключа соответствующих таблиц), чтобы иметь связь между отделами и задачами. Посмотрите запрос в другом ответе и просто добавьте ORDERBY в DEPTID, чтобы отобразить результаты в порядке DEPTID.