検索

ホームページ  >  に質問  >  本文

「group by」と「order by」を使用してテーブルから特定の行を取得する方法

次のようなテーブルがあります:

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_availability1 で、is_available1 で、少なくとも 1 つの製品 1# がある場合、製品は利用可能です。在庫あり ##。) ### 利用可能な製品を最初に表示したいのですが、利用可能な製品がない場合は、どの製品が表示されても問題ありません (利用できない場合は、最初の製品でも問題ありません)。

(上記の例では、最初に

tmp_id を持つ製品を 2 として取得する必要があります。) ######質問:### 私の質問は、ニーズを達成するために MYSQL

クエリをどのように作成すればよいでしょうか?

次のコマンドを使用すると、製品を希望の順序で取得できますが、GROUP BY を使用して最初の既存の製品を取得するには次に何をすればよいかわかりません。 リーリー

注:

もちろん、これは私が持っているものの単なるデモンストレーションであり、実際のコードはより複雑で、複数の結合やその他のものがあります。

P粉794851975P粉794851975430日前487

全員に返信(1)返信します

  • P粉055726146

    P粉0557261462023-09-13 14:05:48

    これは、row_number() を使用して実行できます。これは、パーティション内の各行の一意の行番号を返します

    リーリー

    返事
    0
  • キャンセル返事