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

Consulta sql con NOT IN

Estas en el tema de Consulta sql con NOT IN en el foro de Mysql en Foros del Web. Hola tengo 2 tablas una de clientes y otra de Reservas Lo que quiero hacer es obtener los clientes de la tabla Tcliente que no ...
  #1 (permalink)  
Antiguo 15/01/2010, 06:22
 
Fecha de Ingreso: marzo-2009
Mensajes: 221
Antigüedad: 15 años, 1 mes
Puntos: 0
Consulta sql con NOT IN

Hola tengo 2 tablas una de clientes y otra de Reservas
Lo que quiero hacer es obtener los clientes de la tabla Tcliente que no estan en la tabla TReserva, tengo la siguiente expresion pero el phpMyadmin me da error no se porque. He visto varios foros y creo que la expresion es correcta

La tabla TCliente tiene el campo DNI que es el mismo dni que tiene la tabla TReserva

Código MySQL:
Ver original
  1. SELECT * FROM TCliente  WHERE DNI NOT IN (SELECT dni_cliente FROM TReserva)
  #2 (permalink)  
Antiguo 15/01/2010, 06:29
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
Respuesta: Consulta sql con NOT IN

No estás poniendo el error que phpMyADmin te devuelve.
La sintaxis es correcta, por llo que el error debe estar expresando otra cosa.

¿Qué dice?
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #3 (permalink)  
Antiguo 15/01/2010, 07:00
 
Fecha de Ingreso: marzo-2009
Mensajes: 221
Antigüedad: 15 años, 1 mes
Puntos: 0
Respuesta: Consulta sql con NOT IN

Perdon,me da este error

#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 dni_cliente FROM TReserva)

LIMIT 0, 30' at line 1
  #4 (permalink)  
Antiguo 15/01/2010, 07:25
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 2 meses
Puntos: 360
Respuesta: Consulta sql con NOT IN

La consulta parece estar bien y si los campos y nombres de tablas están bien, no tendría por que poner problema.

Se me ocurre que estés utilizando una versión muy vieja de mysql que no soporte subconsultas.

saludos
__________________
Without data, You are another person with an opinion.
W. Edwads Deming
  #5 (permalink)  
Antiguo 15/01/2010, 07:47
 
Fecha de Ingreso: enero-2010
Ubicación: Estelí, Nicaragua
Mensajes: 157
Antigüedad: 14 años, 3 meses
Puntos: 8
Respuesta: Consulta sql con NOT IN

Cita:
Iniciado por jawir Ver Mensaje
Perdon,me da este error

#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 dni_cliente FROM TReserva)

LIMIT 0, 30' at line 1
Hola, deberias poner un poco de informacion como la estructura de las tablas, entorno a la sentencia, para tener un mejor panorama y talvez deducir que puede estar fallando.

Última edición por LENINCASCO; 15/01/2010 a las 07:53
  #6 (permalink)  
Antiguo 15/01/2010, 08:00
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
Respuesta: Consulta sql con NOT IN

Postea una captura de la pantalla de la ejecución de la sentencia en el phpMyAdmin.

Veamos lo que tu ves...
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #7 (permalink)  
Antiguo 15/01/2010, 08:28
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años
Puntos: 300
Respuesta: Consulta sql con NOT IN

Comprueba que los campos DNI y dni_cliente sean de la misma naturaleza.
Prueba esta consulta para conseguir lo mismo
Código SQL:
Ver original
  1. SELECT * FROM TCliente tc
  2.   LEFT JOIN TReserva tr ON tc.DNI=tr.dni_cliente WHERE tr.dni_cliente IS NULL
  #8 (permalink)  
Antiguo 15/01/2010, 10:26
 
Fecha de Ingreso: marzo-2009
Mensajes: 221
Antigüedad: 15 años, 1 mes
Puntos: 0
Respuesta: Consulta sql con NOT IN

Puede que sea de la version del mysql es que estoy trabajando a traves del servidor de un amigo y no se que version tendra de mysql, le preguntare. A partir de que version funcionan las subconsultas?

Por cierto la consulta de jurena funciona perfectamente, yo es que me estaba liando y lo estaba intentando hacer con OUTER LEFT JOIN

Gracia a todos
  #9 (permalink)  
Antiguo 15/01/2010, 10:36
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 2 meses
Puntos: 360
Respuesta: Consulta sql con NOT IN

Asi te funcionara la consulta con not in, creo que es mucho mas optimo usar la consulta que te da jurena.

No recuerdo a partir de que versión acepta subconsultas. Creo que después de la 4.xx.

saludos
__________________
Without data, You are another person with an opinion.
W. Edwads Deming

Etiquetas: sql
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 05:38.