openpbx=> select * from subscriptions where user_id = '1'; id | user_id | product_id | created_at | deleted_at ----+---------+------------+-------------------------------+------------ 1 | 1 | 1 | 2006-12-02 15:03:36.637406+01 | 2 | 1 | 1 | 2006-12-02 15:03:36.637406+01 | 3 | 1 | 2 | 2006-12-02 15:03:36.637406+01 | (3 rows) openpbx=> INSERT INTO subscriptions_billed(user_id,product_id,invoice_id) SELECT subscriptions.user_id,product_id,MAX(invoices_temp.id) FROM subscriptions,invoices_temp WHERE subscriptions.user_id = 1 AND invoices_temp.user_id = 1 GROUP BY subscriptions.user_id,subscriptions.product_id; INSERT 0 2 openpbx=> select * from subscriptions_billed; id | user_id | product_id | start_date | end_date | invoice_id ----+---------+------------+------------+----------+------------ 48 | 1 | 2 | | | 31 49 | 1 | 1 | | | 31 (2 rows)