обновление записей? 
                  
                  
                    WITH
                  
                  
                    tmpCustomer AS (
                  
                  
                      SELECT c.customer_id AS id, c.email
                  
                  
                      FROM oc_order r
                  
                  
                      INNER JOIN oc_customer c ON c.customer_id = r.customer_id
                  
                  
                      WHERE r.order_status_id = 6 AND c.customer_group_id < 3
                  
                  
                      GROUP BY c.customer_id
                  
                  
                      HAVING COUNT(*) > 4
                  
                  
                    ),
                  
                  
                    tmpCustomerU AS (
                  
                  
                      UPDATE oc_customer SET customer_group_id = 3 WHERE customer_id IN (SELECT id FROM tmpCustomer)
                  
                  
                    )
                  
                  
                    SELECT email FROM tmpCustomer
                  
                  
                
Стикер
Ну да, то же самое с CTE - но UPDATE
 Bohdan
                          
                        
                      
                    
                    
                    
                    
                      Автор вопроса
                      
                      
                        
                          Bohdan
                          
                        
                      
                    
                    
                    
                    
                      Автор вопроса
                    
                    
                  так не пишет ошибку когда внутри CTE UPDATE
Я не понял...
Посмотрел запрос — нет, неверно. Нельзя писать внутри CTE UPDATE, CTE - это встроенный VIEW, и именно так его надо использовать. Примерно так WITH tmpCustomer AS ( SELECT c.customer_id AS id, c.email FROM oc_order r INNER JOIN oc_customer c ON c.customer_id = r.customer_id WHERE r.order_status_id = 6 AND c.customer_group_id < 3 GROUP BY c.customer_id HAVING COUNT(*) > 4 ), UPDATE oc_customer SET customer_group_id = 3 WHERE customer_id IN (SELECT id FROM tmpCustomer)
 Bohdan
                          
                        
                      
                    
                    
                    
                    
                      Автор вопроса
                      
                      
                        
                          Bohdan
                          
                        
                      
                    
                    
                    
                    
                      Автор вопроса
                    
                    
                  SQL Error [1064] [42000]: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'UPDATE oc_customer SET customer_group_id = 3 WHERE customer_id = 3
Почему тогда ты написал "НЕ ПИШЕТ ОШИБКУ" ?
 Bohdan
                          
                        
                      
                    
                    
                    
                    
                      Автор вопроса
                      
                      
                        
                          Bohdan
                          
                        
                      
                    
                    
                    
                    
                      Автор вопроса
                    
                    
                  ну тогда не получить список с таблицы tmpCustomer. В PostgresSQL это норм отрабатывает такие конструкции. Спасибо
Обсуждают сегодня