我有两张桌子
英雄
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粉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`