Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

Error 1064 Mysql

Estas en el tema de Error 1064 Mysql en el foro de Mysql en Foros del Web. Buen día compañeros, hoy creando una consulta para mi aplicacion, al hacer un select anidado dentro de otro surgio el error 1064 de MySQL, y ...
  #1 (permalink)  
Antiguo 19/04/2008, 11:52
Avatar de Akiracr  
Fecha de Ingreso: septiembre-2006
Mensajes: 114
Antigüedad: 17 años, 7 meses
Puntos: 3
Error 1064 Mysql

Buen día compañeros, hoy creando una consulta para mi aplicacion, al hacer un select anidado dentro de otro surgio el error 1064 de MySQL, y en realidad no entiendo que esta mal en mi consulta mi motor de base de datos es la 4.1.22, aqui les dejo mi consulta para ver si alguein me logra decir que esta mal en la misma


SELECT distinct(`EQU-ID`),SELECT count( `EQU-PTS` ) AS PTS, count( `EQU-GLS` ) AS GLS, count( `EQU-NGL` ) AS NGL
FROM `REGPAR` AS x where x.`TOR-ID` = y.`TOR-ID` and x.`EQU-ID`= y.`EQU-ID` FROM `REGPAR` as y


Ete es el mesnaje de phpMyAdmin:

Cita:
consulta SQL: Documentación

SELECT DISTINCT (
`EQU-ID`
),
SELECT count( `EQU-PTS` ) AS PTS, count( `EQU-GLS` ) AS GLS, count( `EQU-NGL` ) AS NGL
FROM `REGPAR` AS x
WHERE x.`TOR-ID` = y.`TOR-ID`
AND x.`EQU-ID` = y.`EQU-ID`
FROM `REGPAR` AS y

MySQL ha dicho: Documentación
#1064 - 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 'SELECT count( `EQU-PTS` ) AS PTS, count( `EQU-GLS` ) AS GLS, count( `EQU-NGL` ) ' at line 1
  #2 (permalink)  
Antiguo 19/04/2008, 13:27
 
Fecha de Ingreso: abril-2008
Mensajes: 1
Antigüedad: 16 años
Puntos: 0
Re: Error 1064 Mysql

ES SIMPLEMENTE EL ORDEN DE TU CONSULTA, NO LA ENTIENDO BIEN PERO SEGUN YO SERÍA ASI

SELECT distinct(`EQU-ID`)
FROM `REGPAR` as y, (SELECT count( `EQU-PTS` ) AS PTS, count( `EQU-GLS` ) AS GLS, count( `EQU-NGL` ) AS NGL
FROM `REGPAR`) AS x
where x.`TOR-ID` = y.`TOR-ID` and x.`EQU-ID`= y.`EQU-ID`
  #3 (permalink)  
Antiguo 19/04/2008, 14:30
Avatar de Akiracr  
Fecha de Ingreso: septiembre-2006
Mensajes: 114
Antigüedad: 17 años, 7 meses
Puntos: 3
Re: Error 1064 Mysql

gracias por responder pero no me funciono, :P pero se agradece, lo que sucede es que mi consulta original:

SELECT DISTINCT (
`EQU-ID`
),
SELECT count( `EQU-PTS` ) AS PTS, count( `EQU-GLS` ) AS GLS, count( `EQU-NGL` ) AS NGL
FROM `REGPAR` AS x
WHERE x.`TOR-ID` = y.`TOR-ID`
AND x.`EQU-ID` = y.`EQU-ID`
FROM `REGPAR` AS y

es una consulta anidada de la misma tabla en teoria lo que trae el select anidado es el conteo de 3 columnas para el mismo EQU-ID y con el distinct en teoria logro hacer que no se contabilicen doblemente las consultas ya que se puede dar el caso de que este el EQU-ID varias veces:

espero que me entiendan lo que necesito es unir estas dos consultas:

consulta anidada:
SELECT count( `EQU-PTS` ) AS PTS, count( `EQU-GLS` ) AS GLS, count( `EQU-NGL` ) AS NGL
FROM `REGPAR` AS x
WHERE x.`TOR-ID` = y.`TOR-ID`
AND x.`EQU-ID` = y.`EQU-ID`

consulta padre:

SELECT DISTINCT (
`EQU-ID`
) FROM `REGPAR` AS y
  #4 (permalink)  
Antiguo 19/04/2008, 15:02
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Re: Error 1064 Mysql

El error de sintaxis es que esás intentando un SELECT anidado y estás usando un SELECT encadenado:
Código:
SELECT campo1, SELECT campo2, campo3 FROM tabla1 FROM tabla2
debe ser escrito o así:
Código:
SELECT campo1, (SELECT campo2, campo3 FROM tabla1)  FROM tabla2
o así:
Código:
SELECT campo1 FROM (SELECT campo2, campo3 FROM tabla1) AS tabla2
En tu caso y siguiendo el último mensaje la solución sería:

Código:
SELECT 
`EQU-ID`,
`TOR-ID`,
count( `EQU-PTS` ) AS PTS, 
count( `EQU-GLS` ) AS GLS, 
count( `EQU-NGL` ) AS NGL
FROM `REGPAR` 
GROUP BY `EQU-ID`, `TOR-ID`
o así:
Código:
SELECT 
`EQU-ID`, PTS, GLS, NGL
FROM 
(SELECT 
`EQU-ID`,
`TOR-ID`,
count( `EQU-PTS` ) AS PTS, 
count( `EQU-GLS` ) AS GLS, 
count( `EQU-NGL` ) AS NGL
FROM `REGPAR` 
GROUP BY `EQU-ID`, `TOR-ID`)
AS tabla2

Última edición por gnzsoloyo; 19/04/2008 a las 21:35
  #5 (permalink)  
Antiguo 19/04/2008, 18:24
Avatar de Akiracr  
Fecha de Ingreso: septiembre-2006
Mensajes: 114
Antigüedad: 17 años, 7 meses
Puntos: 3
Re: Error 1064 Mysql

muchisimas gracias
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 22:31.