Ver Mensaje Individual
  #1 (permalink)  
Antiguo 08/10/2016, 09:42
DarKZeroS
 
Fecha de Ingreso: diciembre-2014
Mensajes: 20
Antigüedad: 9 años, 4 meses
Puntos: 0
Problemas con sentencia ORDER BY + UNION

Hola a todos.

Veréis tengo un problema con un script cuando ejecuto la sentencia con UNION este lanza el siguiente error:

Unknown column 'subscribers.subscribedate' in 'order clause'

Lo he revisado todo y no encuentro el problema las tablas existen las columnas tambien y cuando genero la sentencia por separado desde PHP sin UNION funciona OK, debe haber algun problema con la sintaxis que se me escapa.

Esta es la definicion de la tabla:

Código:
Columna				Tipo			Nulo	Predeterminado
subscriberid			int(11)			No*		
listid				int(11)			No*	0*	
emailaddress			varchar(200)		Sí*	NULL*	
domainname			varchar(100)		Sí*	NULL*	
format				char(1)			Sí*	NULL*	
confirmed			char(1)			Sí*	0*	
confirmcode			varchar(32)		Sí*	NULL*	
requestdate			int(11)			Sí*	0*	
requestip			varchar(20)		Sí*	NULL*	
confirmdate			int(11)			Sí*	0*	
confirmip			varchar(20)		Sí*	NULL*	
subscribedate			int(11)			Sí*	0*	
bounced				int(11)			Sí*	0*	
unsubscribed			int(11)			Sí*	0*	
unsubscribeconfirmed		char(1)			Sí*	0*	
formid				int(11)			Sí*	0*
Este es la sentencia completa:
Código SQL:
Ver original
  1. INSERT INTO email_queues (queueid, queuetype, ownerid, recipient, processed)
  2.  
  3.     SELECT DISTINCT 13, 'send', 1, subscribers.subscriberid, 0
  4.     FROM email_list_subscribers AS subscribers
  5.     JOIN email_lists AS lists ON lists.listid = subscribers.listid AND lists.listid IN (1)
  6.         WHERE subscribers.listid IN (1)
  7.             AND (    
  8.                     (
  9.                         subscribers.subscriberid IN (
  10.                                                         SELECT d.subscriberid AS subscriberid
  11.                                                         FROM email_subscribers_data d
  12.                                                         WHERE d.fieldid = 15 AND d.DATA < 51
  13.                                                     )
  14.                     )
  15.                 )
  16.             AND (subscribers.unsubscribed=0 AND subscribers.bounced=0)
  17.    
  18.     UNION
  19.  
  20.     SELECT DISTINCT 13, 'send', 1, subscribers.subscriberid, 0
  21.     FROM email_list_subscribers AS subscribers
  22.     JOIN email_lists AS lists ON lists.listid = subscribers.listid AND lists.listid IN (1)
  23.         WHERE subscribers.listid IN (1)
  24.             AND (
  25.                     (
  26.                         subscribers.subscriberid IN (
  27.                                                         SELECT d.subscriberid AS subscriberid
  28.                                                         FROM email_subscribers_data d
  29.                                                         WHERE d.fieldid = 16 AND d.DATA < 4
  30.                                                     )
  31.                     )
  32.                 )
  33.             AND (subscribers.unsubscribed=0 AND subscribers.bounced=0)
  34.    
  35.     ORDER BY subscribers.subscribedate ASC
  36.     LIMIT 1000000000

y este es la funcion php que genera la consulta:

[
Cita:
Editado: Código de programación no permitido en los foros de BBDD

Última edición por gnzsoloyo; 08/10/2016 a las 23:21