Думаю, вы захотите:
SELECT b.title, b.pubYear
FROM book b
WHERE b.avgRating = (SELECT min(b2.avgRating)
FROM book b2
);
Две вещи. Я убрал количество. Я предполагаю, что вы хотите суммировать это, но ваш вопрос не определяет, и отдельная строка для каждого заказа кажется странным. Во-вторых, я добавил псевдонимы таблиц и полные имена столбцов. Вот что важно.
Вы думаете, что ваш запрос:
SELECT b.title, b.pubYear, od.quantity
FROM book b INNER JOIN
orderDetails od
ON b.ISBN = od.bookisbn
WHERE b.avgRating = (SELECT MIN(od2.avgRating)
FROM orderDetails od2
)
Но в orderDetails
нет столбца avgRating
, поэтому предложение WHERE
действительно:
WHERE b.avgRating = (SELECT MIN(b.avgRating)
FROM orderDetails od2
)
Ну, вы сравниваете столбец с его внешней ссылкой - неудивительно, что это всегда так.
Мораль истории: Всегда уточняйте имена таблиц, желательно с осмысленными псевдонимами таблиц, которые являются сокращениями для имен таблиц.