SQL INNER JOIN / неизвестный столбец C.book в предложении On - PullRequest
2 голосов
/ 28 октября 2019

https://www.db -fiddle.com / f / nCgygDjwYXZnWQ28LL7kMi / 0

Цель:

Выбор копии. Владелец людей, которым принадлежитобе книги "Скотта Келби" с разными номерами ISBN

Привет, ребята, чтобы вывести таблицу книг в примере на db-fiddle, я фактически использовал кучу внутренних операторов соединения.

Теперь, когда я приобрел стол с книгами, как я могу проверить, что c.owner владеет обеими копиями книги?

Я пытался использовать

SELECT DISTINCT 
     C.owner
FROM 
     copy C, 
     copy C1
INNER JOIN (
     SELECT 
          B.authors, 
          B.ISBN13
     FROM 
          book B
INNER JOIN( 
     SELECT 
          B1.authors
     FROM 
          book B1
     GROUP BY 
          B1.authors
     HAVING (COUNT(B1.authors) > 1) 
) B1
ON B.authors = B1.authors) B
ON C.book = B.ISBN13 AND C1.book = B.ISBN13 AND C1.book <> C.book;

Однако, если я попытаюсь сослаться на две таблицы во 2-й строке кода, я получу столбец с неизвестной ошибкой в ​​предложении ON, что вынудит меня удалить копию C1 из запроса.

1 Ответ

2 голосов
/ 28 октября 2019

Вы можете попробовать ниже -

select owner
from book b inner join copy c
on b.isbn13=c.book
group by owner
having count(distinct isbn13)=2
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...