次のようなテーブルがあります:
tmp_id | 製品の在庫状況 (0 および 1) | is_available(0 および 1) | 在庫数(整数) | product_id (整数) |
---|---|---|---|---|
1 | 1 | 1 | 0 | 1 |
2 | 1 | 1 | 4 | 1 |
各 product_id
で最初に利用可能な製品を取得する必要があります。
利用可能な製品は、まず product_availability
、次に is_available
、最後に stock_count
を確認する必要があります。 (product_availability
が 1
で、is_available
が 1
で、少なくとも 1 つの製品 1# がある場合、製品は利用可能です。在庫あり ##。) ###
利用可能な製品を最初に表示したいのですが、利用可能な製品がない場合は、どの製品が表示されても問題ありません (利用できない場合は、最初の製品でも問題ありません)。
tmp_id を持つ製品を 2
として取得する必要があります。)
######質問:###
私の質問は、ニーズを達成するために MYSQL
次のコマンドを使用すると、製品を希望の順序で取得できますが、GROUP BY を使用して最初の既存の製品を取得するには次に何をすればよいかわかりません。 リーリー
注: もちろん、これは私が持っているものの単なるデモンストレーションであり、実際のコードはより複雑で、複数の結合やその他のものがあります。
これは、
リーリーrow_number()
を使用して実行できます。これは、パーティション内の各行の一意の行番号を返します