我正在尝试在sql查询下创建数据:
select groups.name, members.status
from `members`
inner join `groups` on groups.group_id = members.group_id
where `user_id` = 1
我使用NodeJS的包mysql
来处理MySQL。
我正在尝试获取数据:
function getGroups(req, res) {
const sql = 'select groups.name, members.status from `members` inner join `groups` on groups.group_id = members.group_id where `user_id` = 1';
connection.query(sql, (err, results) => {
console.log(req.payload.id);
console.log(results);
if (err) {
res.status(400);
}
if (results && results.length > 0) {
res.status(200).json(results);
}
if (results && results.length === 0) {
res.status(200).json('Empty');
}
});
}
为什么没有找到数据?求你帮帮我
我用于编写SQL查询SQL教程:
https://www.w3schools.com/sql/sql_join_inner.asp
答案 0 :(得分:2)
我认为你的查询是不明确的,这使得数据库混淆并且它没有返回你们两个表中有user_id的任何内容而你写了where user_id = 1
可能是这样的情况尝试控制错误,你的代码应该像这个..
function getGroups(req, res) {
const sql = 'select g.name, m.status from members m inner join groups g on g.group_id = m.group_id where g.user_id = 1';
//use g.user_id or m.user_id whatever you want.
connection.query(sql, (err, results) => {
console.log(req.payload.id);
console.log(results);
if (err) {
res.status(400);
}
if (results && results.length > 0) {
res.status(200).json(results);
}
if (results && results.length === 0) {
res.status(200).json('Empty');
}
}); }
在使用复杂的时候,给表的别名总是好的 查询 See this 希望这会有所帮助