 |
Club Builder Foro de C++Builder en español
|
| Ver tema anterior :: Ver tema siguiente |
| Autor |
Mensaje |
_ijm_ Cdt


Registrado: 29 Mar 2003Mensajes: 10
|
Publicado: Lun 05 Ene, 2004 9:10 pm Asunto: Uniones SQL |
|
|
No tengo mucha idea de uniones en SQL, asi q acepto sugerencias d todo tipo
Tengo 1 tabla Equipos y otra Ciclistas, uno d los campos de ciclistas contiene el nombre del equipo al que pertenece, uno d los campos d equipos contiene la competicion en la cual esta ese determinado equipo
necesito sacar todos los ciclistas que estan en una determinada competicion
estas son las lineas FROM y WHERE
FROM Equipos E, Ciclistas C, EquiposCiclistas EC
WHERE E.Competicion=EC.Competicion AND E.Nombre=EC.Nombre AND C.Equipo = EC.Equipo AND EC.Nombre=EC.Equipo AND EC.Competicion= Y aqui le pondre yo el nombre a la competicion
No se si esto estara bien o no, llevo media hora mirando 1 manual d SQL de 700 paginas x lo menos y es todo lo que he sacado, al ejecutar el builder me dice que no encuentra la tabla EquiposCiclistas, y supongo q tendra razon
Alguna ayudita.... |
|
| Volver arriba |
|
 |
jaquemate Lt Cmdr


Registrado: 30 Sep 2002Mensajes: 110
|
Publicado: Mar 06 Ene, 2004 12:51 am Asunto: |
|
|
Bueno, creo que en vez de unión el término correcto es encuentro por la izquierda. Y esta sería la consulta:
| Código: | select *
from CICLISTAS left join EQUIPOS on CICLISTAS.NOMBRE = EQUIPOS.NOMBRE
where EQUIPOS.COMPETICION = ¿?
|
Un saludo. |
|
| Volver arriba |
|
 |
Invitado
|
Publicado: Mar 06 Ene, 2004 1:57 am Asunto: |
|
|
| Ahora mismo pruebo |
|
| Volver arriba |
|
 |
XyVy Master


Registrado: 25 Ago 2002Mensajes: 557Ubicación: Murcia (España)
|
Publicado: Mar 06 Ene, 2004 11:15 am Asunto: |
|
|
_ijim_ lo primero decirte que hay un subforo concreto de bases de datos donde puedes preguntar, responder y encontrar respuesta a este tipo de preguntas.
Sobre las UNION quizás estes un poco confundido con la clausula UNION, sirve para unir dos o más resultados donde los campos tienen el mismo nombre y mismo tipo, en tu caso la solución que te han dado es la correcto también se podía haber hecho sin el JOIN simplemente usando la clausula WHERE y usar el campo que relaciona las dos tablas para tener los valores correctos y luego el campo que tu hubieras querido para concretar que tuplas concretas a tener en cuenta, algo así:
| Código: |
SELECT (lo que sea, procura no poner * sino te interesan todos los campos)
FROM Equipos E, Ciclistas C
WHERE E.Nombre=C.Nombre AND E.Competicion=la competicion que quieras;
|
Los nombres E y C son alias que se crean para las tablas, es una forma más comoda de llamar a Equipos y Ciclistas respectivamente, por ejemplo la solución que te da jaquemate el no usa alias, esto hace que la consulta sea más legible incluso. Con WHERE hubiera sido así:
| Código: |
SELECT (lo que sea, procura no poner * sino te interesan todos los campos)
FROM Equipos, Ciclistas
WHERE Equipos.Nombre=Competicion.Nombre AND Equipos.Competicion=loquesea;
|
Pues nada espero que te funcione, con lo de jaquemate te sobra, lo mío simplemente era un apunte. Por cierto recuerda que tienes el subforo sobre bases de datos.
Ciao. _________________ OJO!! Ya tenemos subforo de Bases de Datos!!
Gracias a los admins. |
|
| Volver arriba |
|
 |
_ijm_ Cdt


Registrado: 29 Mar 2003Mensajes: 10
|
Publicado: Mar 06 Ene, 2004 1:38 pm Asunto: |
|
|
Muchas gracias y perdon por no escribir en el foro de bases de gatos, efectivamente funciona.  _________________ .::.||FRK||.::. Ch4mp170s7313s |
|
| Volver arriba |
|
 |
|
|
No puedes publicar temas nuevos en este foro No puedes responder a temas en este foro No puedes editar tus mensajes en este foro No puedes borrar tus mensajes en este foro No puedes votar en las encuestas de este foro
|
© 2002–2026 Club Builder · Funciona con phpBB.
|