ホームページ >データベース >mysql チュートリアル >MySQL で外部結合を使用して従業員のゼロ値を含むサブスクリプションをカウントするにはどうすればよいですか?
OUTER JOINS を使用した MySQL での Null カウントの処理
リレーショナル データベースを使用する場合、複数のクエリを実行するときにゼロ値を表示するのが難しい場合があります。テーブル。たとえば、質問で説明されているシナリオを考えてみましょう。ここには、Employee と mailingSubscriptions という 2 つのテーブルがあります。 Employee テーブルには従業員に関する基本情報が含まれ、mailingSubscriptions テーブルには従業員の電子メール購読ステータスが追跡されます。
各従業員の購読数をカウントするには、次のクエリを使用します。
SELECT COUNT(c.Name) FROM Employee INNER JOIN mailingSubscriptions as m ON c.Name = m.EmployeeName;
ただし、このクエリは、mailingSubscriptions テーブルに少なくとも 1 つのエントリを持つ従業員の数のみを返します。従業員がまだメールを購読していない場合、その数は結果から省略されます。
購読していない従業員の値をゼロに含めるには、外部結合を使用する必要があります。外部結合を使用すると、一致する値がない場合でも 2 つのテーブルの行を結合できます。この場合、左外部結合を使用します。これにより、mailingSubscriptions テーブルに対応する行があるかどうかに関係なく、Employee テーブルのすべての行が保持されます。
次のクエリは、各従業員のサブスクリプション数を計算するための左外部結合 (サブスクリプションのない従業員も含む):
SELECT c.name, count(m.mailid) FROM Employee LEFT JOIN mailingSubscriptions as m ON c.Name = m.EmployeeName GROUP BY c.name;
GROUP BY c.name 句各従業員のサブスクリプションを個別にカウントするようにします。クエリの結果は、従業員名とそれに対応する購読数のリストになります。電子メールをまだ購読していない従業員には値が 0 として表示されます。
以上がMySQL で外部結合を使用して従業員のゼロ値を含むサブスクリプションをカウントするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。