ホームページ > データベース > mysql チュートリアル > 欠落している日付範囲データに対して IN クエリにデフォルト値を含める方法

欠落している日付範囲データに対して IN クエリにデフォルト値を含める方法

Patricia Arquette
リリース: 2025-01-17 06:26:09
オリジナル
510 人が閲覧しました

How to Include Default Values in an IN Query for Missing Date Range Data?

IN クエリ値のデフォルト値を取得

IN クエリを使用して、特定の日付範囲内にオンラインだったユーザーのデータを取得するクエリがあるとします。ただし、日付範囲条件に一致しないユーザー ID の IN 条件にデフォルト値を含める必要があります。

質問

以下の簡略化されたクエリでは、左結合を使用してオンラインの使用状況とユーザー ID を照合します。ただし、日付範囲基準に一致するレコードのみが返されます。

<code class="language-sql">SELECT users.Name, users.ID, SUM(users.Minutes) AS MinutesOnline
FROM UserTable
LEFT JOIN OnlineUseage ON OnlineUseage.ID = UserTable.ID
WHERE OnlineUseage.Date >= '2016-01-01 00:00:00' AND OnlineUseage.Date < '2016-01-31 00:00:00';</code>
ログイン後にコピー

解決策

デフォルト値を含めるには、FROM 句に日付範囲条件を配置します。

<code class="language-sql">SELECT
    users.Name,
    users.ID,
    IFNULL(SUM(users.Minutes), 0) AS MinutesOnline
FROM
    users
LEFT JOIN OnlineUseage ON
        OnlineUseage.ID = users.ID and
        OnlineUseage.Date >= '2016-01-01 00:00:00' AND
        OnlineUseage.Date < '2016-01-31 00:00:00';</code>
ログイン後にコピー

これにより、日付範囲条件に一致するかどうかに関係なく、すべてのユーザー ID が取得 IN 条件に含まれるようになります。 IFNULL は、オンライン使用状況データを持たないユーザーにデフォルト値 0 を提供するために使用されます。

以上が欠落している日付範囲データに対して IN クエリにデフォルト値を含める方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート