0

SQL データベースに 2 つのテーブルがあります。1 つは Companies で、もう 1 つは Company_advertisements です。会社テーブル「adv」のフィールドを更新したい

SET Company.adv = 1 if Company_adv.image is not empty
SET Company.adv = 0 if Company_adv.image is empty

Company_adv テーブルの外部キーは company_id です

次の構文を使用してみましたが、うまくいきませんでした。代わりに、このクエリを実行した後、Companmy.adv のすべての値がその後 1 になります。

私はこのクエリを試しました:

UPDATE companies cmp, company_adv cma 
SET    cmp.adv=1 
WHERE  cma.company_id=cmp.id AND 
       cma.image1 IS NOT NULL

私を助けてください !!

4

2 に答える 2

0

あなたは試すことができます:

UPDATE companies
   SET adv=IF((SELECT image
                 FROM company_adv
                WHERE companies.id=company_adv.company_id) IS NULL,
              0,
              1);
于 2013-01-27T07:30:46.060 に答える
0

その場合は、使用する必要がありますLEFT JOIN

UPDATE  companies cmp
        LEFT JOIN company_adv cma
            ON cmp.id = cma.company_id
SET     cmp.adv = IF(cma.image1 IS NULL, 0, 1)
于 2013-01-27T07:06:37.430 に答える