这是我的三个相关 sql 表及其相关属性:
- 具有属性的 OrderType
ID
- RestaurantVisit,与财产
OrderTypeID
和RestaurantID
- 餐厅,有财产
ID
当给定一个订单类型(例如饮料、配菜、主菜)时,我需要返回之前订购过该订单类型的所有餐厅,按该类型订单最多的餐厅订购。
例如,给定 type side
,我返回 Restaurants r1, r2, r3
,其中 r1 是所有餐厅中订单最多side
的餐厅,r2
是第二多的餐厅,等等。
这是我到目前为止所拥有的(请记住,我已经获得了一个 OrderTypeID):
SELECT DISTINCT r.ID
FROM Restaurant r
JOIN RestaurantVisit rv
ON rv.OrderTypeID = ?
WHERE rv.ID = r.ID
这目前可以返回所有曾经收到给定类型订单的餐厅。我现在需要做的是由具有给定类型订单最多的餐厅订购这些。
我在想的是在某处添加这样的东西,但我完全不确定:
ORDER BY COUNT(rv.OrderTypeID = ?)
有人有想法么?谢谢!