Есть две таблицы:
ТАБЛИЦА 1: Мои книги
BOOK PRICE
book1 45
book2 21
book3 7
book4 95
book5 32
etc
ТАБЛИЦА 2: Не мои книги
OWNER BOOK PRICE
owner1 book1 32
owner2 book1 14
owner2 book2 3
owner3 book3 7
owner4 book4 3
etc
Итак, в таблице1 у нас есть только одна книга1, только одна книга2 и т. Д. В таблице2 у нас может быть одна или несколько книг1 или книг2 и т. Д.
Я хочу знать наименьшую разницу в цене междумои книги (таблица 1), а не мои книги (таблица 2).(Этот заказ важен, не важно, получу ли я отрицательное значение в цене).
Другими словами, я хочу сделать что-то вроде этого:
price (of books1 from table1) - price (of books1 from table2)
Учитывая, что у нас может быть много цен на книги1 в таблице2, я должен сделать что-то вроде этого
price (of book1 from table1) - price1 (of book1 from table2)
price (of book1 from table1) - price2 (of book1 from table2)
….
И после этого выбрать минимальное значение между полученными результатами.
Логика моеготекущий запрос:
SELECT
table1.price - table2.price
FROM
table1
JOIN table2 ON table1.book = table2.book
Но он не работает, потому что возвращает более 1 строки (для таблицы 2).
Итак, мой вопрос: нужно ли мне использоватьцикл (курсор ??? я могу использовать его здесь?) или есть другой способ сделать это?
Большое спасибо за любой совет!
РЕДАКТИРОВАТЬ
Я пытался
SELECT
min(table1.price - table2.price) AS ‘price difference’
FROM
table1
JOIN table2 ON table1.book = table2.book
Не работает.
Ожидаемый результат:
BOOK PRICE DIFFERENCE
book1 13
book2 18
book3 0
etc