cari

Rumah  >  Soal Jawab  >  teks badan

Gunakan sertai dalam pertanyaan kemas kini dan bukannya lajur semasa mengemas kini baris

<p>更新之前(原始示例表):</p> <table class="s-table"> <thead> <tr> <th>document_id</th> <th>meta_key</th> <th>meta_value</th> </tr> </thead> <tbody> <tr> <td>1</td> <td>iban</td> <td>IBAN123456</td> </tr> <tr> <td>1</td> <td>bankaccount</td> <td>ACCT987654</td> </tr> <tr> <td>2</td> <td>iban</td> <td>IBAN555555</td> </tr> <tr> <td>2</td> <td>bankaccount</td> <td>ACCT444444</td> </tr> <tr> <td>3</td> <td>iban</td> <td>IBAN888888</td> </tr> <tr> <td>3</td> <td>bankaccount</td> <td>ACCT333333</td> </tr> </tbody> </table> <p>运行SQL更新查询后:</p> <table class="s-table"> <thead> <tr> <th>document_id</th> <th>meta_key</th> <th>meta_value</th> </tr> </thead> <tbody> <tr> <td>1</td> <td>iban</td> <td>IBAN123456</td> </tr> <tr> <td>1</td> <td>bankaccount</td> <td>IBAN123456</td> </tr> <tr> <td>2</td> <td>iban</td> <td>IBAN555555</td> </tr> <tr> <td>2</td> <td>bankaccount</td> <td>IBAN555555</td> </tr> <tr> <td>3</td> <td>iban</td> <td>IBAN888888</td> </tr> <tr> <td>3</td> <td>bankaccount</td> <td>IBAN888888</td> </tr> </tbody> </table> <p>我需要一个查询来实现上述表格的结果吗?</p>
P粉170438285P粉170438285486 hari yang lalu571

membalas semua(1)saya akan balas

  • P粉826283529

    P粉8262835292023-08-03 11:24:36

    document_id, meta_key, and meta_value Anda ingin mengemas kini meta_value baris yang meta_key ialah akaun bank kepada meta_value yang sepadan dalam baris yang meta_key ialah iban.

    Berikut ialah pertanyaan SQL untuk mencapai matlamat ini:


    UPDATE example_table AS p1
    INNER JOIN (
        SELECT document_id, meta_value AS iban
        FROM example_table
        WHERE meta_key = 'iban'
    ) AS p2 ON p1.document_id = p2.document_id
    SET p1.meta_value = p2.iban
    WHERE p1.meta_key = 'bankaccount';
    

    1. Jadual p1 ialah alias bagi example_table dan p2 ialah alias subquery
    2. Subquery memilih document_id dan meta_value apabila meta_key ialah 'iban'
    3. Query utama menggunakan INNER JOIN untuk memadankan document_id antara p1 dan subquery p2.
    4. Kemudian, ia mengemas kini nilai_meta dengan kunci_meta sebagai 'akaun bank' dalam p1 kepada iban dalam p2.

    Sebelum menjalankan sebarang pertanyaan kemas kini, ingat untuk menyandarkan pangkalan data anda dan mengujinya dalam persekitaran yang selamat!


    balas
    0
  • Batalbalas