我的子句sql
中有错误SELECT e.id_pedido,
d.pregunta,
Group_concat(d.respuesta) AS respuestan,
e.cedula_usuario,
(SELECT `nombres`
FROM `usuarios`
WHERE `cedula` = e.cedula_usuario) AS nombreUsuario,
(SELECT `id_supervisor`
FROM `usuarios`
WHERE `cedula` = e.cedula_usuario) AS idSupervisor,
e.cedula_cliente,
c.`nit`,
c.`contacto`,
c.cod_ciudad,
c.nom_ciudad,
c.cod_barrio,
c.n om_barrio,
c.direccion,
c.telefono,
e.fecha_pedido,
e.hora_final,
(SELECT p.descripcion
FROM `preguntas_encuesta_obligatoria` AS p
WHERE p.encuesta = '34'
AND p.id_preg = d.pregunta
AND p.consecutivo_preg = '1'
AND p.tipo = '1') AS preguntaFin,
(SELECT Group_concat(descripcion) AS descripcion
FROM `preguntas_encuesta_obligatoria`
WHERE encuesta = '34'
AND id_preg = d.pregunta
AND consecutivo_preg IN ( respuestan )
AND tipo = '2') AS respuestaFin,
(SELECT `unidad_de_negocio`
FROM `usuarios`
WHERE `cedula` = e.cedula_usuario) AS unidad_negocio,
(SELECT `id_unidad_negocio`
FROM `usuarios`
WHERE `cedula` = e.cedula_usuario) AS id_unidad_negocio
FROM `encuesta_obligatoria` AS e
INNER JOIN encuesta_obligatoria_detalle AS d
ON e.id_pedido = d.id_encuesta
INNER JOIN clientes AS c
ON e.cedula_cliente = c.cedula
WHERE e.`fecha_pedido` >= '2017-02-13'
AND e.`fecha_pedido` <= '2017-02-16'
AND d.encuesta = '34'
GROUP BY e.id_pedido,
d.pregunta
ORDER BY e.id_pedido DESC,
d.pregunta ASC,
d.respuesta ASC
不支持参考'respuestan'(参考群组功能)
答案 0 :(得分:0)
GROUP_CONCAT() 返回串联字符串,并尝试将其用作集合。
SELECT e.id_pedido,
d.pregunta,
Group_concat(d.respuesta) AS respuestan,
(SELECT Group_concat(descripcion) AS descripcion
FROM `preguntas_encuesta_obligatoria`
WHERE encuesta = '34'
AND id_preg = d.pregunta
AND consecutivo_preg IN ( respuestan ) <-- You cant do this
AND tipo = '2') AS respuestaFin,
相反,您必须包含正确的SELECT
consecutivo_preg IN ( SELECT consecutivo_preg FROM ... WHERE ...)