Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Conexión con bases de datos
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Conexión con bases de datos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 25-06-2007
Avatar de Wonni
Wonni Wonni is offline
Miembro
 
Registrado: abr 2006
Posts: 261
Poder: 18
Wonni Va por buen camino
Tabla con varios lookups a otras. Y otra tabla con un lookup a la primera. En SQL

hola;

No consigo saber como construir una consulta en SQL. He buscado aqui y en el libro SQL de Francisco Charte, pero no me aclaro.

Se trata de una tabla con varios campos. 5 de ellos deberian ser lookups. Pero quiero poder ordenar tambien por estos campos lookup, asi que segun he investigado por los foros, lo mejor es hacerlo con SQL. Además, es lo que trato de hacer ahora, lo posible en SQL.

Tengo una tabla LIBROS y otra LISTAS. En la tabla LISTAS simplemente tengo 3 campos: ID_CENTRO, ID_CURSO, ISBN.

El campo ISBN es el enlace a la tabla LIBROS que tambien tiene un campo ISBN.

En la tabla LIBROS deben existir varios campos lookup hacia otras tablas como por ejemplo: EDITORIAL, ASIGNATURA, IDIOMA.

No se como hacer en SQL para colocar los lookups en la tabla LIBROS a las tablas Editorial, Asginatura, Idioma y despues en la tabla LISTAS el lookup a la tabla LIBROS con el campo ISBN para obtener los datos del libro.

Decir que para editar registros utilizaria otros Querys. Lo digo por que he buscado aqui en los foros y ese problema aparecia varias veces. Pero esta consulta solo seria para no editar, solo ver.
Responder Con Cita
  #2  
Antiguo 25-06-2007
ramiretor ramiretor is offline
Miembro
 
Registrado: may 2003
Ubicación: México
Posts: 196
Poder: 21
ramiretor Va por buen camino
Hola:
Pues tu pregunta es muy ambigua, pero una rapida contestación es que tienes que hacer inner join entre las tablas Libros y Listas, Editorial, Asignatura e Idiomas

Saludos
__________________
Ernesto R.
Responder Con Cita
  #3  
Antiguo 25-06-2007
Avatar de Wonni
Wonni Wonni is offline
Miembro
 
Registrado: abr 2006
Posts: 261
Poder: 18
Wonni Va por buen camino
gracias ramiretor;

Estaba yo pensando que seria con OUTER JOIN

Voy a repasar el libro de Charte otra vez a ver si lo consigo. Esque soy totalmente nuevo en esto de SQL
Responder Con Cita
  #4  
Antiguo 26-06-2007
ramiretor ramiretor is offline
Miembro
 
Registrado: may 2003
Ubicación: México
Posts: 196
Poder: 21
ramiretor Va por buen camino
Pues es que el Outer es para registros que están en una tabla pero no en la otra, mas bien, necesitas un manual de SQL, si das información de los campos en que se relacionan las tablas tal vez te podamos ayudar para sacar la consulta

Saludos
__________________
Ernesto R.
Responder Con Cita
  #5  
Antiguo 26-06-2007
Avatar de Wonni
Wonni Wonni is offline
Miembro
 
Registrado: abr 2006
Posts: 261
Poder: 18
Wonni Va por buen camino
Si, si manua tengo(el libro de Charte, ClubDelphi, Google) pero como soy totalmente novato y la consulta no es sencilla precisamente. Vamos que no he empezado asi con algo como: SELECT * FROM TABLA

Voy a detallar la estructura de Tablas, para ver si me podeis ayudar. Os lo agradezco mucho. Si no me fuera urgente, trataria de averiguar mas por mi cuenta. Aunque sigo en ello, por supuesto




TABLA CURSOS:

ID_CURSO - DESCRIP - NIVEL - ORDEN

TABLA ASIGNATURAS:

ID_ASIGN - DESCRIP

TABLA EDITORIALES:

ID_EDITOR - DESCRIP




TABLA LIBROS:

ID_CURSO - ID_ASIGN - ID_EDITOR - TITULO - ISBN



TABLA LISTAS:

ISBN - ID_CENTRO - ID_CURSO - OPTATIVA - F_IMPLAN


En la tabla listas ha de aparecer todo. Lo filtraré con una Clausula Where con los campos ID_CENTRO - ID_CURSO. Pero el caso es que deben salir todos los demas campos.

Para introducir un libro en las LISTAS, este debe estar dado de alta en LIBROS.

Y claro, la tabla LISTAS la debo poder ordenar por TITULO, ISBN, ORDEN(del curso. El cual está en la tabla CURSOS), ASIGNATURA, EDITORIAL . . .


Tal vez estoy pidiendo demasiado. La verdad es complicado, por lo menos eso me parece a mi ahora.
Responder Con Cita
  #6  
Antiguo 26-06-2007
ramiretor ramiretor is offline
Miembro
 
Registrado: may 2003
Ubicación: México
Posts: 196
Poder: 21
ramiretor Va por buen camino
Hola pues no tanto.
Cuando usas varias tablas se recomienda usar letras para diferenciar una de otra, supongo que traes todos los campos de libros (y como tampoco dices que motor de BD usas) puede variar un poco

Código SQL [-]

  SELECT A.* FROM LIBROS A
     INNER JOIN CURSOS B ON A.ID_CURSO = B.ID_CURSO
     INNER JOIN ASIGNATURA C ON A.ID_ASIG = C.ID_ASIG
     INNER JOIN EDITORIAL D ON A.ID_EDITOR = B.ID_EDITOR
     INNER JOIN LISTAS E ON A.ISBN = E.ISBN
  WHERE .....

Saludos
__________________
Ernesto R.
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Recorrer Tabla, contar registro repetidos y escribir totales en otra Tabla Lucas_diaz1810 Conexión con bases de datos 1 25-12-2006 14:04:34
Ordenar Una tabla por un Campo de otras Tabla teletranx Conexión con bases de datos 2 18-08-2006 16:56:35
Dbgrid para insertar en una tabla pero cogiendo datos de otra tabla taru MySQL 1 27-07-2006 16:36:12
Con delphi Insert en Firebird varios registros desde otra tabla lasweb Conexión con bases de datos 3 04-04-2005 21:58:26
¿Una tabla sólo puede estar unida externamente como máximo a otra tabla ? febito Oracle 0 22-06-2004 19:12:16


La franja horaria es GMT +2. Ahora son las 16:44:41.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi