Как получить данные из нескольких таблиц. Используя node js и mysql? - PullRequest
0 голосов
/ 18 апреля 2020

У меня есть две таблицы, которые подаются на этой скрипке.

http://sqlfiddle.com/#! 9 / d37102

Я хочу получить данные из таблицы, в настоящее время я я делаю это так

mysqlConnection.query("SELECT* FROM wallet WHERE user_id = ? ORDER by date",authData.id,(err,rows,fields)=>{
  if(!err){
    res.json({
      message :"Statement",
      rechargeDetails : rows,
      transactionDetail://// TODO: Transaction details

    });
  }
  else console.log(err);
});

Это правильно извлекает данные JSON в этом формате здесь

{
    "message": "Statement",
    "rechargeDetails": [
        {
            "id": 17,
            "amount": 50,
            "type": "CREDIT",
            "pg_id": "xxxxq123",
            "comments": null,
            "intrument_type": "REFUND",
            "user_id": 1,
            "date": "2020-04-17T18:30:00.000Z"
        },
        {
            "id": 18,
            "amount": 50,
            "type": "CREDIT",
            "pg_id": "xxxxq123",
            "comments": null,
            "intrument_type": "REFUND",
            "user_id": 1,
            "date": "2020-04-17T18:30:00.000Z"
        }
    ]
}

Я хочу получить данные таблицы транзакций также, как это

{
    "message": "Statement",
    "rechargeDetails": [
        {
            "id": 17,
            "amount": 50,
            "type": "CREDIT",
            "pg_id": "xxxxq123",
            "comments": null,
            "intrument_type": "REFUND",
            "user_id": 1,
            "date": "2020-04-17T18:30:00.000Z"
        },
        {
            "id": 18,
            "amount": 50,
            "type": "CREDIT",
            "pg_id": "xxxxq123",
            "comments": null,
            "intrument_type": "REFUND",
            "user_id": 1,
            "date": "2020-04-17T18:30:00.000Z"
        }
"transactionDetails": [
        {
            "id": 17,
            "amount": 50,
            "tax": "CREDIT",
            "discount": "xxxxq123",
            "adjustment": null,
            "refrence_id": "REFUND",
            "payment_ref_id": 1,
           xxxxxx
           xxxxxxxxxx
        }
    ],

}

Как я могу это сделать? Есть ли способ сделать это?

Ответы [ 2 ]

0 голосов
/ 18 апреля 2020
mysqlConnection.query("SELECT * FROM wallet WHERE user_id = ? ORDER by date",authData.id,(err,rows,fields)=>{
  if(!err){
      mysqlConnection.query("SELECT * FROM transaction WHERE user_id = ? ORDER by date",authData.id,(errTarn,rowsTarn,fieldsTarn)=>{
          if(!errTarn){
              res.json({
                message :"Statement",
                rechargeDetails : rows,
                transactionDetail: rowsTarn

             });
          }
      }); 

  }
  else console.log(err);
});

ИЛИ ВЫ МОЖЕТЕ ИСПОЛЬЗОВАТЬ НЕСКОЛЬКО ЗАПРОСОВ

включить его для подключения

var connection = mysql.createConnection({multipleStatements: true});

Теперь код будет

connection.query('SELECT * FROM wallet WHERE user_id = ? ORDER by date; SELECT * FROM transaction WHERE user_id = ? ORDER by date', [authData.id, authData.id], function(err, results) {
  if (err) throw err;
  if(!err){
      res.json({
            message :"Statement",
            rechargeDetails : results[0],
            transactionDetail: results[1]

      });
  }
});
0 голосов
/ 18 апреля 2020

У меня ноль знаний с NODE, но я думаю, что-то вроде этого должно работать правильно

mysqlConnection.query("SELECT* FROM wallet WHERE user_id = ? ORDER by date",authData.id,(err,rows,fields)=>{
    if(!err){
        res.json({
            message :"Statement",
            rechargeDetails : rows,
            transactionDetail: mysqlConnection.query("__SELECT_TRANSACTIONS_QUERY__",authData.PARAMETER_NEEDED,(err,rows,fields)=>{
                if(!err){
                    // return your rows
                }
            });
        });
    } else {
        console.log(err);
    }
}); 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...