2015-12-16 3 views
0

Может ли кто-нибудь помочь мне с этим запросом по возвращенному запросу?Выполнение запроса на каждой итерации

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

это код для запроса:

db.query('SELECT * FROM Table WHERE ID in ?', [(1,2,3,4)], 
function(err, rows) { 
    if (err) throw err 
    var items = [] 
    rows.forEach(function(i) { 
     var item = { 
      'item1': i.item1, 
      'item2': i.item2, 
      'item3': i.item3 
     } 
     db.query('SELECT * FROM Table2 WHERE ID = ?', [i.ID], 
     function(err, rows2) { 
      if (err) throw err 
      item.subvalue = rows2 
     }) 
     items.push(item) 
     }) 
     res.json(items) 
    }) 
+0

Можете ли вы прояснить, в чем проблема - что-то вернулось? Какой код пытается показать? Где о проблемах, которые вы испытываете в коде? –

+0

'['(1,2,3,4)]' -> '[(1,2,3,4)]' – Kenney

+0

Основной запрос - это получение списка предметов в этом случае для бронирования за определенный месяц. Затем мне нужно выполнить итерацию результатов и вторую проверку запроса, если это был ваучер, используемый для каждого элемента. оба запроса работают отлично, я хотел узнать лучший метод, как результаты второго запроса на объект, который строится в цикле foreach. Поскольку я не могу просто перейти item.subvalue = rows2 –

ответ

0

Так что я сделал это в конец. использовал множественный оператор, где второй запрос возвращает все возможные результаты, необходимые для результатов запроса 1. Затем я могу выполнять итерацию результатов 1 и результатов 2 внутри него.

Все еще не уверен, что это лучший подход, но он работает. Любые предложения приветствуются

db.query('SELECT 1 WHERE Range ?; SELECT 2 WHERE ID IN (SELECT 1)', 
[req.body.hotelid, '2015-11-01', '2015-11-30', 
req.body.hotelid, '2015-11-01', '2015-11-30'], 
    function(err, result) { 
     if (err) console.log(err) 
     else 
      var items = [] 
     result[0].forEach(function(i) { 
      var giftVoucherUsed = [] 
      var item = { 
       'ID': i.BookingID, 
       'BookingDate': i.BookingDate, 
       'GuestName': 'Guestname' 
      }     
      result[1].forEach(function(g){ 
       if(g.BookingID == i.BookingID){ 
        giftVoucherUsed.push(g) 
       } 
      }) 
      item['GiftVoucher'] = giftVoucherUsed 

      items.push(item) 
     }) 
     res.json(items) 
    });