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

Consulta inversa en MySQL

Estas en el tema de Consulta inversa en MySQL en el foro de Bases de Datos General en Foros del Web. Hola no se si es posible hacer una conculta "inversa" a una existente, me explico, tengo una base de datos para reservar coches y tengo ...
  #1 (permalink)  
Antiguo 29/11/2003, 02:12
Avatar de neofito  
Fecha de Ingreso: noviembre-2003
Mensajes: 138
Antigüedad: 20 años, 5 meses
Puntos: 0
Consulta inversa en MySQL

Hola no se si es posible hacer una conculta "inversa" a una existente, me explico, tengo una base de datos para reservar coches y tengo la consulta que muestra los coches reservados (en todos los parkings) mi duda es que si se puede hacer una consulta al revés, es decir que muestre los coches no reservados que quedan en los parkings, escribo a continuación las tablas y la consulta que me funciona y de la cual quiero cal cular "la inversa" (es muy simple)

Tabla aparcamiento
-numero (sólo hay 5 o sea que va del 1 al 5)
-ubicacion (calle tal o cual)

Tabla coches
-matricula
-aparcamiento (el mismo campo que el numero en la tabla aparcamiento, o sea sólo hay 5 o sea que va del 1 al 5)

Tabla reserva
-matricula
-nif
-fecha

Tabla usuarios
-nif
-nombre

La consulta que pego a continuación me permite calcular los coches reservados en cada parking ordenados por fecha y nombre de usuario, a ver si alguien sabe como hacer lo "inverso" (si es posible que lo mismo no se puede) osea mostrar los que están libres (o sea, los no reservados)

SELECT
`reserva`.`fecha`,
`reserva`.`nif` AS `nif1`,
`usuarios`.`nombre`,
`coches`.`aparcamiento`,
`aparcamiento`.`ubicacion`,
`reserva`.`matricula`
FROM
`aparcamiento`
INNER JOIN `coches` ON (`aparcamiento`.`numero` = `coches`.`aparcamiento`)
INNER JOIN `reserva` ON (`coches`.`matricula` = `reserva`.`matricula`)
INNER JOIN `usuarios` ON (`reserva`.`nif` = `usuarios`.`nif`)
ORDER BY
`reserva`.`fecha`,
`usuarios`.`nombre`

Gracias y Saludos

Última edición por neofito; 29/11/2003 a las 02:14
  #2 (permalink)  
Antiguo 29/11/2003, 02:35
 
Fecha de Ingreso: octubre-2003
Ubicación: Santiago
Mensajes: 66
Antigüedad: 20 años, 6 meses
Puntos: 0
Hola Neofito,

Creo que puedes intentar con el siguiente código, y luego depurarlo.

SELECT * FROM aparcamiento WHERE
(
__________________
Saludos,

MAC
  #3 (permalink)  
Antiguo 29/11/2003, 02:41
 
Fecha de Ingreso: octubre-2003
Ubicación: Santiago
Mensajes: 66
Antigüedad: 20 años, 6 meses
Puntos: 0
Lo siento, el anterior se fue erróneamente !!!!
=================================

Hola Neofito,

Creo que puedes intentar con el siguiente código, y luego depurarlo.

SELECT * // (todos o campos a seleccionar) //
FROM aparcamiento, reserva, usuarios, coches
WHERE reserva.fecha, reserva.nif, usuarios.nombre, coches.aparcamiento, aparcamiento.ubicacion, reserva.matricula NOT IN
(SELECT
`reserva`.`fecha`,
`reserva`.`nif` AS `nif1`,
`usuarios`.`nombre`,
`coches`.`aparcamiento`,
`aparcamiento`.`ubicacion`,
`reserva`.`matricula`
FROM
`aparcamiento`
INNER JOIN `coches` ON (`aparcamiento`.`numero` = `coches`.`aparcamiento`)
INNER JOIN `reserva` ON (`coches`.`matricula` = `reserva`.`matricula`)
INNER JOIN `usuarios` ON (`reserva`.`nif` = `usuarios`.`nif`)
ORDER BY
`reserva`.`fecha`,
`usuarios`.`nombre`);

Espero ayude !

__________________
Saludos,

MAC
  #4 (permalink)  
Antiguo 29/11/2003, 03:44
Avatar de neofito  
Fecha de Ingreso: noviembre-2003
Mensajes: 138
Antigüedad: 20 años, 5 meses
Puntos: 0
Gracias Mario

Ahora me pondré con ello.

Saludos
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 07:31.