Использование postgresql, мне нужно создать представление под названием «no_cat_customers», которое возвращает имя, фамилию любого клиента, который не был отправлен ни одной книгой «Кошка в шляпе» ». Это должно быть сделано с использованием универсальной количественной оценки. Ошибка, которую я получаю, - «ОШИБКА: ИСКЛЮЧЕНИЕ типов целое и текст не может быть сопоставлен» в отношении строки 7 (EXCEPT (SELECT shipments.isbn
).SQL - вложенные подзапросы
CREATE VIEW no_cat_customers(customer_first_name, customer_last_name)
AS SELECT first_name, last_name
FROM customers
WHERE EXISTS (SELECT c_id
FROM shipments
WHERE customers.c_id = shipments.c_id
EXCEPT (SELECT shipments.isbn
FROM books, editions, shipments
WHERE books.book_id = editions.book_id AND
editions.isbn = shipments.isbn AND
title LIKE '%The Cat in the Hat%'));
Я понимаю, что это трудно спросить учитывая, что вы не имеете базу данных я использую, но любая помощь с этим было бы очень признателен!
EDIT: Я должен добавить, что в базе данных есть два выпуска «The Cat in the Hat», оба с разными isbn's. Поэтому это необходимо учитывать.
Обязательно * любые другие * отправления-> товары были доставлены этим клиентам? – wildplasser
@ wildplasser нет, они просто должны быть в списке клиентов и не получать кошку в шляпе – Brittany
В этом случае вы можете делать только с помощью 'select * от клиентов c, где не существует (выберите * из отправлений s join books ON. .JOIN выпуски e ON ... WHERE c.cid = s.cid и b.title LIKE '% cat%'); '- >> вы хотите, чтобы ВСЕ клиенты, которые НЕ заказали эту книгу" – wildplasser