搜尋

首頁  >  問答  >  主體

如何取得關係表資料名稱而不是id

我有兩張桌子

英雄

id 姓名 universe_id
12 標記 1
99 穎片 1

宇宙

id 姓名
1 仙女座
2 極光

如何使用Universe name而不是universe_id回傳hero表資料。抱歉,我沒有足夠的 sql 經驗來完成這個簡單的任務。我在SO中讀到了一些需要使用JOIN的答案。

我嘗試做這樣的事情。

exports.getHero = (req, res) => {
  
const sql = "SELECT * FROM `hero` WHERE `id`='" + req.params.id + "' JOIN `universe` WHERE `id`=`universe_id` ON `hero.universe_id`=`universe.id`";
    db.query(sql, (error, results) => {
        if (error) {
            console.log(error);
        } else {
            response.returnSingleValue(results, res);
        }
    });
};

但這行不通。

更新:

預期結果為:

[{
  id: 12, 
  name: Mark,
  universe_id: Andromeda
},
{
  id: 99, 
  name: Glume,
  universe_id: Andromeda
}]

P粉276064178P粉276064178232 天前373

全部回覆(2)我來回復

  • P粉432906880

    P粉4329068802024-04-01 15:30:34

    您可以在id 值上將universe 連接到hero ,然後有意選擇您希望在輸出中看到的初始SELECT 子句中的欄位:

    SELECT `hero`.`id`, `hero`.`name`, `universe`.`name`
    FROM `hero`
    JOIN `universe` ON `hero`.`universe_id` = `universe`.`id`

    回覆
    0
  • P粉521697419

    P粉5216974192024-04-01 14:50:41

    雷雷

    回覆
    0
  • 取消回覆