0

1 つのテーブル Products と 2 つ目の Price があります。1 つの製品に複数の価格を設定できます。

テーブル製品の重要な列

ID、名前

テーブル価格の重要な列

在庫状況、価格、サプライヤー ID

在庫状況が 0 を超えていて価格が最も低い JOIN 価格が必要です。

パフォーマンスの詳細:

  • より多くの価格を意味する100万以上の製品
  • インデックスは pri.ProductId にありますが、さらに追加できます

また、これらの結果を製品名または価格で注文できるようにする必要があります

何かのようなもの:

SELECT * FROM Products pro 
JOIN Prices pri ON pri.ProductId = pro.Id 
AND MIN(pri.Price) AND pri.Availability > 0
4

1 に答える 1

1
SELECT * 
FROM Products pro 
JOIN 
(
  select ProductId, min(Price) as mprice, Availability
  from Prices
  where Availability > 0
  group by ProductId 
) pri on pri.ProductId = pro.Id 
于 2013-09-04T13:19:48.673 に答える