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 originalINSERT INTO email_queues (queueid, queuetype, ownerid, recipient, processed)
SELECT DISTINCT 13, 'send', 1, subscribers.subscriberid, 0
FROM email_list_subscribers AS subscribers
JOIN email_lists AS lists ON lists.listid = subscribers.listid AND lists.listid IN (1)
WHERE subscribers.listid IN (1)
AND (
(
subscribers.subscriberid IN (
SELECT d.subscriberid AS subscriberid
FROM email_subscribers_data d
WHERE d.fieldid = 15 AND d.DATA < 51
)
)
)
AND (subscribers.unsubscribed=0 AND subscribers.bounced=0)
UNION
SELECT DISTINCT 13, 'send', 1, subscribers.subscriberid, 0
FROM email_list_subscribers AS subscribers
JOIN email_lists AS lists ON lists.listid = subscribers.listid AND lists.listid IN (1)
WHERE subscribers.listid IN (1)
AND (
(
subscribers.subscriberid IN (
SELECT d.subscriberid AS subscriberid
FROM email_subscribers_data d
WHERE d.fieldid = 16 AND d.DATA < 4
)
)
)
AND (subscribers.unsubscribed=0 AND subscribers.bounced=0)
ORDER BY subscribers.subscribedate ASC
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