Перебор 3 разных результатов SQL

#javascript #sql #postgresql #loops

#javascript #sql #postgresql #циклы

Вопрос:

Мне нужно перебрать 3 результата SQL-запросов. Проблема в том, что он выдает только первый результат, а не все из них.

 exports.rewardsNotifications = function() {
    var now = new Date()
    var hourUTC = now.getUTCHours()

    if (hourUTC <= 18) {
        db.task(t => {
            return t.any(`SELECT customer.customer_id, customer.phone_number, customer.place_group_id, customer.state, MAX(visit_date_only) AS last_visit, COUNT(visit_date) AS visit_count FROM VISITS
            INNER JOIN customer ON visits.customer_id = customer.customer_id AND visits.place_group_id = customer.place_group_id
            WHERE customer.state = 'on' GROUP BY customer.customer_id`).then(function(visitsData) {

                for(var i=0; i<visitsData.length; i  ){
                    var customer_id = visitsData[i]['customer_id']
                    var phone_number = visitsData[i]['phone_number']
                    var place_group_id_visits = visitsData[i]['place_group_id']
                    var last_visit = visitsData[i]['last_visit']
                    var visit_count = visitsData[i]['visit_count']


                return t.any(`SELECT rewards_list.reward_name, rewards_list.required_visits, rewards_list.place_group_id FROM rewards_list`).then(function(rewards){

                    for(var j=0; j<rewards.length; j  ){
                        var reward_name = rewards[j]['reward_name']
                        var reward_required_visits = rewards[j]['required_visits']
                        var place_group_id_rewards = rewards[j]['place_group_id']


                    return t.any(`SELECT customer_id, reward_name, place_group_id FROM rewards`).then(function(redeemedRewards){

                        for(var k=0; k<redeemedRewards.length; k  ){
                            var redeemed_reward_customer_id = redeemedRewards[k]['customer_id']
                            var reward_redeemed_name = redeemedRewards[k]['reward_name']
                            var reward_rest_group_id = redeemedRewards[k]['place_group_id']


                        console.log('THIS ARE THE REWARDS', reward_name)
                        console.log('THIS IS THE CUSTOMERS', customer_id)

                    }
                    })

                }
                })

                }
            })
        })
    }
}
  

В моем console.log я просто получаю первый результат от запросов (не все клиенты, не все награды).
Что я хочу сделать, это проверить (для всех клиентов), какие вознаграждения клиент выкупил, а какие нет.

Комментарии:

1. Вы должны иметь возможность просто написать SQL-запрос, который даст вам эти результаты, и вам не нужно выполнять цикл или что-то подобное в javascript, чтобы понять это

2. Не могли бы вы указать используемую строку подключения? (убедитесь, что вы удалили любую конфиденциальную информацию)