Rumah  >  Soal Jawab  >  teks badan

Bagaimanakah saya boleh mengurangkan pertanyaan Prisma ini kepada satu pertanyaan?

<p>Saya perlu mendapatkan <kod> pengguna</kod> mengikut tarikh <kod><kod> id</kod> </code>, saya boleh melakukannya dengan dua pertanyaan seperti ini: </p> <pre class="brush:php;toolbar:false;">ctx.prisma.post.update({ di mana: { id: tunggu ctx.prisma.post .findFirst({ di mana: { userId: "c2e4c855-768c-48ab-b9c1-155ce1090cd6" pesananOleh: { tarikh: "desc" }) .then(post => post.id), }, data: { dikemas kini: benar }, })</pre> <p>Saya telah cuba menjadikannya berfungsi sebagai pertanyaan tetapi saya tidak berjaya, ini adalah yang terbaik yang saya peroleh sebagai klausa SQL: </p> <pre class="lang-sql prettyprint-override"><kod>KEMASKINI Catatan SET dikemas kini = benar WHERE id IN ( PILIH * DARI ( PILIH id DARI Pos WHERE user_id = "c2e4c855-768c-48ab-b9c1-155ce1090cd6" DAN tarikh = (PILIH MAX(tarikh) daripada Siaran)) sebagai x); </code></pre> <p>Walaupun ini adalah klausa, ia juga mengakses pangkalan data dua kali. Jika ada cara yang lebih baik untuk melakukan ini dalam SQL, saya berminat untuk mempelajarinya, tetapi saya tidak mahu menggunakan Prisma untuk menghantar pertanyaan <code>raw</code> </p> <p>Adakah perkara yang saya cari mungkin atau patutkah saya menyimpannya dalam dua pertanyaan? </p>
P粉423694341P粉423694341413 hari yang lalu420

membalas semua(1)saya akan balas

  • P粉741223880

    P粉7412238802023-09-04 00:51:06

    Jika anda hanya ingin mengemas kini yang diberikan user_id 的最新 Post:

    UPDATE Post
    SET updated = true
    WHERE user_id = 'c2e4c855-768c-48ab-b9c1-155ce1090cd6'
    ORDER BY date DESC, id DESC
    LIMIT 1;

    Saya tidak tahu bagaimana anda akan menulis ini dalam prisma, tetapi ini adalah pertanyaan SQL.

    balas
    0
  • Batalbalas