Rumah > Soal Jawab > teks badan
Saya ada dua meja
Wira
id | Nama | universe_id |
---|---|---|
12 | Tag | 1 |
99 | Kepingan gluten | 1 |
Alam Semesta
id | Nama |
---|---|
1 | Andromeda |
2 | Aurora |
Cara menggunakan universe name dan bukannya universe_id untuk mengembalikan hero
data jadual. Maaf, saya tidak mempunyai pengalaman sql yang mencukupi untuk menyelesaikan tugas mudah ini. Saya membaca beberapa jawapan dalam SO yang memerlukan penggunaan JOIN.
Saya cuba buat macam ni.
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); } }); };
Tetapi ini tidak berkesan.
Kemas kini:
Hasil yang diharapkan ialah:
[{ id: 12, name: Mark, universe_id: Andromeda }, { id: 99, name: Glume, universe_id: Andromeda }]
P粉4329068802024-04-01 15:30:34
Medan yang boleh anda gunakan dalam klausa id
值上将 universe
联接到 hero
,然后有意选择您希望在输出中看到的初始 SELECT
:
SELECT `hero`.`id`, `hero`.`name`, `universe`.`name` FROM `hero` JOIN `universe` ON `hero`.`universe_id` = `universe`.`id`
P粉5216974192024-04-01 14:50:41
const sql = "SELECT h.id, h.name, u.name as universe_id FROM `hero` as h LEFT JOIN `universe` as u ON h.universe_id=u.id";