2017-07-19 26 views
0

見つからない:SQLは:データは、私は次のSQLクエリを作成し、データを取得しようとしています

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

私は自分のアプリケーションで2つのテーブルを持っています。
Members
enter image description here

そして表Groups
enter image description here

私はパッケージのMySQLとの作業のためのNodeJSの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チュートリアル足すために使用された:私はあなたのクエリがあいまいであり、これは、DBの混乱を作り、それはあなたがあなたの両方のテーブルにuser_idをしていると、あなたはそのかもしれwhere user_id = 1を書いたものを返さないと思う
https://www.w3schools.com/sql/sql_join_inner.asp

+0

間違いはありますか?結果は空ですか? –

+0

オンライン検証ツールで自分のSQLクエリをチェックしたので、エラーはありません。コンソールでは、私は 'Empty'ではなく' undefined'を取得しています。 –

答えて

2

をケースもエラーコンソールしようとすると、あなたのコードは次のようでなければなりません。..

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'); 
     } 
    }); } 

あなたは複雑な を使用しているとき、表の別名を与えることを常に良いことだ を問い合わせます うまくいけば、これは役に立ちます

+0

多くのお返事ありがとうございます。あなたは多くの自由時間を私に救った。今日私は 'エイリアス'について読んでいます。 –

+0

ニースの詳細な答え! – Kamesh

関連する問題