【发布时间】:2019-02-13 21:42:34
【问题描述】:
有两个表:
表 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 中我们只有一本书,只有一本书 2,以此类推。在表 2 中,我们可以有一本或多本书籍 1 或书籍 2,等等。
我想知道我的书(表 1)和我的书(表 2)之间的最低价格差异。 (这个顺序很重要,如果我得到负值也没关系)。
换句话说,我想做这样的事情:
price (of books1 from table1) - price (of books1 from table2)
鉴于我们可以在表 2 中有很多书 1 的价格,我必须这样做
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 行(对于 table2)。
所以我的问题是:我必须使用循环(光标???我可以在这里使用它吗?)还是有其他方法可以做到这一点?
非常感谢您的建议!
编辑
我试过了
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
【问题讨论】:
-
Seams 我为您的编辑发布的答案将为您提供预期的结果。