sql >> データベース >  >> RDS >> Mysql

Mysql-2つの列がt1の場合と同じであるt2行のカウントでt1を更新します

    一致しない行にはゼロの値が必要なので、これはLEFT JOINの作業です。 、のように:

    SELECT 
      t1.*, 
      IF(t2.`key` IS NULL, 0, COUNT(t1.`key`)) AS t2_row_count 
    FROM 
      t1 
        LEFT JOIN t2 
          ON t1.id=t2.id 
          AND 
          t1.category=t2.category 
    GROUP BY 
      t1.`key`
    

    t1.keyを数えています 一致した行の場合、最初ので同じになるためです。 テーブル(2番目ではない)-したがって、2番目のテーブルのフィールドではなく、テーブルでグループ化する必要があります。

    ヒント :テーブル/列にmysqlの予約語で名前を付けることは避けてください。これにより、誤ってバックティックを忘れてしまった場合に、多くの時間を節約できます。



    1. javaを使用してmysqlに\\を含むファイルのパスを挿入します

    2. SQLは、年齢ごとに100のランダムな行を返します

    3. MySQL / PHP複数の列から一意の値のみを選択し、それらを別々の配列に配置します

    4. ZenddbアダプターmysqliまたはPDO_MYSQL