SQL:找不到数据

时间:2017-07-19 09:58:04

标签: mysql node.js

我正在尝试在sql查询下创建数据:

select groups.name, members.status 
from `members` 
    inner join `groups` on groups.group_id = members.group_id 
where `user_id` = 1 

我的申请表中有两张桌子 表Members
  enter image description here

Groups
enter image description here

我使用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

1 个答案:

答案 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   希望这会有所帮助