第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

按順序執(zhí)行mysql查詢nodejs

按順序執(zhí)行mysql查詢nodejs

12345678_0001 2023-05-11 16:27:05
我是 nodejs 的新手,正在使用它來構(gòu)建帶有 mysql 數(shù)據(jù)庫的 api,并且遇到了無法按順序執(zhí)行 mysql 查詢的問題。數(shù)據(jù)庫結(jié)構(gòu)是三張表。表a與表b是一對多關(guān)系,表b與表c是一對多關(guān)系。我需要一個提供援助的 GET 端點,它返回一個結(jié)果,其中包含 b 的項目數(shù)組,其中嵌套了 c 的項目數(shù)組。示例結(jié)果:{ logcode: "",logmessage: "",bitems: [{bitemid: 1citems: [{ citemid: 1 } { citemid: 2 }]}{bitemid: 2citems: [{ citemid: 3 }]}]}目前我正在嘗試通過首先執(zhí)行一個查詢來執(zhí)行此操作,在該查詢中我檢索與實體 a 的接收鍵相對應(yīng)的所有類型 b 的值,然后在結(jié)果上運行 foreach 循環(huán)并提取 bitem id,然后在其中運行另一個查詢foreach 循環(huán)獲取具有該特定外鍵的表 c 的所有項目。async function (req, res) {   let functionname = 'getAllItems'   const conLocalPool = db.conLocalPool.promise();   var data = {}   const atoken = req.get('token');   var str = ``;   str = `call ${functionname}('${atoken}')`;   console.log(str);   try {       const [rows, fields] = await conLocalPool.query(str)       data = rows[0][0]       if (data.logcode === 20100) {           data.bitems = rows[1];           data.bitems.forEach(async (bitem) => {               var stmt = `Select * from \`table-c\` where bitemid=${bitem.id}`               try {                   const [citemrows, citemfields] = await conLocalPool.query(stmt);                   console.log(citemrows[1])                   bitem.citems = citemrows[1];                   return true;               }               catch (err) {                   console.log(err);                   return false;               }           })       }       res.status(200).send(data);       return true;   }   catch (err) {       res.status(500).send({           error: err.message       });       return false;   }}使用這個函數(shù),我能夠得到一個響應(yīng),其中包含與 aitemtoken 相關(guān)的所有 bitem,但沒有與每個單獨 bitem 相關(guān)的 citems。我想要一些關(guān)于如何執(zhí)行第一個查詢?nèi)缓蟾鶕?jù)它檢索到的響應(yīng)執(zhí)行后續(xù)查詢的幫助。
查看完整描述

1 回答

?
慕桂英546537

TA貢獻1848條經(jīng)驗 獲得超10個贊

根據(jù)您最后的評論,我相信您可以通過這樣做來實現(xiàn)它JOIN。有幾種方法可以做到這一點,但請考慮下面的示例:


SELECT * FROM owner o?

JOIN dogs d ON o.id=d.owner_id

JOIN dog_toys t ON d.id=t.dog_id

WHERE o.id=1;

假設(shè)您有 3 個表(owner、dogs 和 dog_toys),并且每個表都有一個owner.id=dogs.owner_id和的關(guān)系dogs.id=dog_toys.dog_id,您可以簡單地JOIN在一個查詢中將它們?nèi)咳齻€并修改返回的結(jié)果SELECT。

查看完整回答
反對 回復(fù) 2023-05-11
  • 1 回答
  • 0 關(guān)注
  • 153 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號