У меня есть таблица, в которой хранятся два внешних ключа, реализующих связь n: m.Запрос, возвращающий точное количество строк
Один из них указывает на человека (subject
), а другой - на определенный предмет.
Теперь количество предметов, которые может быть у человека, указано в другой таблице, и мне нужен запрос, который возвращает столько же строк, сколько и количество предметов, которое может иметь человек.
Остальные записи могут быть заполнены знаками NULL
или любым другим.
Это оказалось проблемой для решения этой проблемы со стороны приложения, поэтому я решил попробовать другой подход.
Edit: Примера
CREATE TABLE subject_items
(
sub_item integer NOT NULL,
sal_subject integer NOT NULL,
CONSTRAINT pkey PRIMARY KEY (sub_item, sal_subject),
CONSTRAINT fk1 FOREIGN KEY (sal_subject)
REFERENCES subject (sub_id) MATCH SIMPLE
ON UPDATE CASCADE ON DELETE CASCADE,
CONSTRAINT fk2 FOREIGN KEY (sub_item)
REFERENCES item (item_id) MATCH SIMPLE
ON UPDATE CASCADE ON DELETE CASCADE
)
мне нужен запрос/функция, которая будет возвращать все элементы объекта (объект может иметь 5 пунктов) но есть только три вещи, отнесенная к предмету.
Возврата будет несколько, как:
sub_item | sal_subject
2 | 1
3 | 1
4 | 1
NULL | 1
NULL | 1
Я использую PostgreSQL-8,3
Не удалось разобраться в ситуации. Можете ли вы дать некоторые структуры таблиц и желаемый результат запроса? – Acn
Ваша таблица возврата в конце вопроса должна содержать значение '1' во всех строках для' sal_subject', never 'NULL', чтобы иметь смысл. –