给定以下两个表:
产品类别
PRODUCT_CATEGORY PRIOTITY
BOOK 100
VIDEO 200
CD 300
PRODUCT_TYPES
PRODUCT_TYPE_ID PRODUCTID PRODUCT_CATEGORY
1 1001 VIDEO
2 1001 CD
3 1002 BOOK
4 1002 VIDEO
5 1003 BOOK
我怎样才能加入这两个表,以便我从 PRODUCT_TYPES 中选择所有行,并且在有重复产品的地方,我只选择具有最高优先级的一个。
例如,对于 PRODUCTID 1002,我只想要类别为 VIDEO 的行,因为 VIDEO 的优先级高于 BOOK(这是表中其他 1002 产品的类别)。
这是我尝试过的,但我似乎只得到重复。
select product_type_id, productid, product_category
from product_types pt
join product_categories pc on (pc.product_category=pt.product_category)
另一种方法是按 product_category 降序排序并选择 rownum=1 的第一行,但我怀疑这不是最佳解决方案。