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

Alguien me podria decir el error?

Estas en el tema de Alguien me podria decir el error? en el foro de Bases de Datos General en Foros del Web. Tengo esta consulta y si la go con Acces, me va muy bien todo, el problema viene, cuando lo hago con MySQL, alguein me puede ...
  #1 (permalink)  
Antiguo 10/09/2004, 11:03
Avatar de juanmi321  
Fecha de Ingreso: septiembre-2004
Mensajes: 262
Antigüedad: 19 años, 8 meses
Puntos: 1
Exclamación Alguien me podria decir el error?

Tengo esta consulta y si la go con Acces, me va muy bien todo, el problema viene, cuando lo hago con MySQL, alguein me puede decir por que?

La consulta es esta:

SELECT id, pnombre, papellidop, correo FROM afiliado2 WHERE id not in (Select idusuario
FROM prueba
WHERE idevent=1)

Gracias a todos.
  #2 (permalink)  
Antiguo 10/09/2004, 12:25
Avatar de juanmi321  
Fecha de Ingreso: septiembre-2004
Mensajes: 262
Antigüedad: 19 años, 8 meses
Puntos: 1
Que alguien me ayude porfavor
  #3 (permalink)  
Antiguo 10/09/2004, 12:27
 
Fecha de Ingreso: abril-2004
Ubicación: Valencia
Mensajes: 7
Antigüedad: 20 años
Puntos: 0
Que error te da???
  #4 (permalink)  
Antiguo 10/09/2004, 12:41
Avatar de juanmi321  
Fecha de Ingreso: septiembre-2004
Mensajes: 262
Antigüedad: 19 años, 8 meses
Puntos: 1
me dice que es error de sintaxis, el error es el sigueinte:

You have an error in your SQL sintax near Select idusuario
FROM prueba
WHERE idevent=1 at line 1
  #5 (permalink)  
Antiguo 10/09/2004, 13:06
Avatar de Edypu  
Fecha de Ingreso: octubre-2003
Ubicación: La Paz - Bolivia
Mensajes: 394
Antigüedad: 20 años, 6 meses
Puntos: 1
Salu2

es mejor formular el selecte de otra manera .. que es lo que quieres hacer en si ?
  #6 (permalink)  
Antiguo 10/09/2004, 13:07
Avatar de Edypu  
Fecha de Ingreso: octubre-2003
Ubicación: La Paz - Bolivia
Mensajes: 394
Antigüedad: 20 años, 6 meses
Puntos: 1
Salu2

No estoy muy seguro ... pero seria mejor no usar select anidado


Última edición por Edypu; 11/09/2004 a las 05:58
  #7 (permalink)  
Antiguo 10/09/2004, 17:20
Avatar de juanmi321  
Fecha de Ingreso: septiembre-2004
Mensajes: 262
Antigüedad: 19 años, 8 meses
Puntos: 1
es la unica manera en que sale y como lo comente ya jala bien, solo no me jala en MySQL.
  #8 (permalink)  
Antiguo 10/09/2004, 18:41
 
Fecha de Ingreso: septiembre-2004
Mensajes: 30
Antigüedad: 19 años, 8 meses
Puntos: 0
Hace unos años estuve trabajado con MySQL y si la memoria no me falla una de las limitaciones de MySql es que no admite select anidados, pensaba que en las ultimas versiones ya le habrian dado esta funcionalidad pero por lo que cuentas debe seguir sin admitirlos.

Tienes 2 posible soluciones
1) Si no es ya demasiado tarde y pasate a postgreSQL
2) Hazlo en dos consultas primero la mas interna y con los resultados obtenidos la mas externa

Un saludo
Skelter
  #9 (permalink)  
Antiguo 13/09/2004, 12:13
Avatar de juanmi321  
Fecha de Ingreso: septiembre-2004
Mensajes: 262
Antigüedad: 19 años, 8 meses
Puntos: 1
lo que pasa es que el hosting es el que tiene El MySQL, que hagoooooooo??????
  #10 (permalink)  
Antiguo 13/09/2004, 12:22
 
Fecha de Ingreso: noviembre-2003
Ubicación: Madrid
Mensajes: 353
Antigüedad: 20 años, 5 meses
Puntos: 1
El MySQL es una absoluta porquería (Según mi experiencia obviamente) No soporta select anidados, tendrás problemas más que serios con las fechas y no podrás hacer un simple "Count" porque te dará error. En definitiva ""Te vas a cagar por la pata abajo"

Los servidores de hosting lo instalan porque es gratis, y más de un usuario hace publicidad diciendo que es lo mejor, pero amiguete, vete preparando a tener dolores de cabeza dia trás dia...eso es MySQL y quien te diga otra cosa, creo que tratará de venderte una moto de pedales...

Para hacer esa consulta en la porquería del MySQL tienes que plantearla diferente. Prueba con

LEFT JOIN "sustituyendo sentencia anidada"

creo que eso si lo soporta...

A ver si la porquería esa se estandariza de una vez que ya estamos en el siglo XXI
__________________
Lo menos frecuente en este mundo es vivir. La mayoría de la gente existe, eso es todo...
  #11 (permalink)  
Antiguo 13/09/2004, 12:37
Avatar de juanmi321  
Fecha de Ingreso: septiembre-2004
Mensajes: 262
Antigüedad: 19 años, 8 meses
Puntos: 1
Hijole, disculpa mi ignorancia, querido compañero yomesmo, pero donde pongo eso de left join, en que parte de mi snetencia.


Gracias.
  #12 (permalink)  
Antiguo 13/09/2004, 12:55
 
Fecha de Ingreso: noviembre-2003
Ubicación: Madrid
Mensajes: 353
Antigüedad: 20 años, 5 meses
Puntos: 1
Debería ser algo así:

"SELECT " & _
"afiliado2.id, " & _
"afiliado2.pnombre, " & _
"afiliado2.papellidop, " & _
"afiliado2.correo, " & _
"prueba.idusuario, " & _
" FROM (afiliado2 " & _
" LEFT JOIN prueba ON afiliado2.id <> prueba.idusuario) " & _
" where prueba.idevent<>1"

prueba y me dices...
__________________
Lo menos frecuente en este mundo es vivir. La mayoría de la gente existe, eso es todo...
  #13 (permalink)  
Antiguo 13/09/2004, 12:56
 
Fecha de Ingreso: noviembre-2003
Ubicación: Madrid
Mensajes: 353
Antigüedad: 20 años, 5 meses
Puntos: 1
perdona el
" where prueba.idevent<>1"
deberia ser
" where prueba.idevent=1"
ya que quieres que tenga esa condición...
__________________
Lo menos frecuente en este mundo es vivir. La mayoría de la gente existe, eso es todo...
  #14 (permalink)  
Antiguo 13/09/2004, 15:52
Avatar de juanmi321  
Fecha de Ingreso: septiembre-2004
Mensajes: 262
Antigüedad: 19 años, 8 meses
Puntos: 1
Que crees, yomesmo, que ya me agarro la consulta, pero los resultados no son los correctos, osea no saca que lo que sacaba con la conjsulta que hacia en acces, ademas de que los datos que me devuelve a parte de ser incorrectos, son duplicados, sera por que la consulta dice otra cosa a la original?

Espero tu respuesta.
Gracias
  #15 (permalink)  
Antiguo 13/09/2004, 17:50
Avatar de juanmi321  
Fecha de Ingreso: septiembre-2004
Mensajes: 262
Antigüedad: 19 años, 8 meses
Puntos: 1
Ayudenmeeeeeeeee
  #16 (permalink)  
Antiguo 13/09/2004, 17:56
 
Fecha de Ingreso: noviembre-2003
Ubicación: Madrid
Mensajes: 353
Antigüedad: 20 años, 5 meses
Puntos: 1
Prueba con este:

"SELECT " & _
"afiliado2.id, " & _
"afiliado2.pnombre, " & _
"afiliado2.papellidop, " & _
"afiliado2.correo, " & _
"prueba.idusuario, " & _
" FROM (afiliado2 " & _
" where prueba.idevent<>1 AND afiliado2.id <> prueba.idusuario"
__________________
Lo menos frecuente en este mundo es vivir. La mayoría de la gente existe, eso es todo...
  #17 (permalink)  
Antiguo 25/10/2004, 14:46
 
Fecha de Ingreso: octubre-2004
Mensajes: 2
Antigüedad: 19 años, 6 meses
Puntos: 0
El Mismo error...

Hola... quisiera saber si de diste solucion a tu problema de SELECT pues en este momento tengo un problema similar...

Gracias por tu ayuda..
  #18 (permalink)  
Antiguo 27/10/2004, 18:10
 
Fecha de Ingreso: febrero-2004
Mensajes: 15
Antigüedad: 20 años, 2 meses
Puntos: 0
hola viejo

En Mysql 4.1
SELECT * FROM table1 WHERE NOT EXISTS (SELECT id FROM table2 WHERE table1.id=table2.id);

versiones inferiores
SELECT table1.* FROM table1 LEFT JOIN table2 ON table1.id<>table2.id WHERE table2.id IS NULL

pero tendrias que chequear tus tablas porque puede que tengas que insertar registros nulos.

Salutes.
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 13:54.