Ver Mensaje Individual
  #4 (permalink)  
Antiguo 26/10/2008, 01:14
jurena
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años, 1 mes
Puntos: 300
Respuesta: leer 2 tablas y mostrar resultados que cumplan una condicion

Creo que tienes una estructura inadecuada. Lo que yo haría sería esto:
usuarios
-idusuario ( Primary Key)
-usuario
-password
-telefono

vehiculos
-idvehiculo (Primary Key)
-usuario
-marca
-modelo
-tipo

vehiculosusuarios
-idvehiculosusuarios ( Primary Key)
-idvehiculo (Foreign Key)
-idusuario (Foreign Key)


Las relaciones debes establecerlas por los id de las tablas (Primary Key) y las Foreign Key, idvehiculo e idusuario, de la tabla vehiculosusuarios, que serán campos de tipo int y estarán indexadas.
Para asignar a un usuario dos vehículos o más. Introducirías dos o más registros en la tabla vehiculosusuarios con el idusuario correspondiente al id de ese usuario.
En el campo tipo de vehículo distinguiría si se trata de un auto o una camioneta.
Luego sería muy fácil encontrar cualquier cosa.
Creo que eso es lo mejor.
Respecto a lo que tienes, te diré que podrías sacar lo que quieres con una union como esta:

(SELECT u.usuario, a.marca as marca, a.modelo as modelo, 'auto' from usuarios u inner join autos a on u.usuario = a.usuario where u.usuario = 'Periquito')
union distinct
(SELECT u.usuario, c.marca as marca, c.modelo as modelo, 'camioneta' from usuarios u inner join camionetas c on u.usuario = c.usuario where u.usuario = 'Periquito')

Pero esto es "pan para hoy y hambre para mañana". Vuelve a pensar en la estructura: ese es mi consejo, Camarex.

Última edición por jurena; 27/10/2008 a las 01:46