Foros del Web » Programando para Internet » ASP Clásico »

Unir datos de varias tablas

Estas en el tema de Unir datos de varias tablas en el foro de ASP Clásico en Foros del Web. Bueno, lo primero es una descripcion del problema. Tengo una base de datos, con varias tablas. Pero nos interesan solo 2. Una (GAMES_GAMES), tiene las ...
  #1 (permalink)  
Antiguo 10/01/2003, 08:36
Avatar de meru-kun  
Fecha de Ingreso: noviembre-2002
Ubicación: Madrid
Mensajes: 854
Antigüedad: 21 años, 6 meses
Puntos: 0
Unir datos de varias tablas

Bueno, lo primero es una descripcion del problema.
Tengo una base de datos, con varias tablas. Pero nos interesan solo 2.
Una (GAMES_GAMES), tiene las siguientees celdas:[list=1][*]JUEGO[*]LINK[*]ID_JUEGO[/list=1]
La otra tabla(GAMES_SECC) esta formada por:[list=1][*]ID_JUEGO[*]ID_SECCION[*]SECCION[*]LINK_SECCION[/list=1]

Bueno, una vez descrito la DB, plante el problema, mediante un ejemplo, que seguro que lo hace mas facil:
Supongamos que en GAMES_GAMES tengo un juego con ID_JUEGO = 1, y JUEGO=FinalFantasy, y en GAMES_SECC tengo un campo con ID_JUEGO=3, otro con ID_JUEGO=1, y las dos tiene ID_SECCION=1
(esos eria posbile, si la seccion fuese la misma, pero de distinto juego).

¿Como puedo hacer una consulta en la que, por ejemplo, yo se que busco la seccion 1 del juego FInaLFantasy? Quiero decir, una enl a que no se la ID del juego, solo se su nombre. A partir de ese nombre desarrollar una SQL que me saque su ID y coja las secciones que hay con ese ID_JUEGO ?

(Creo que todo eso se puede hacer con una sola SQL ¿no?)

Gracias, espero que entiendan...
__________________
Tu portal de manga y anime.
  #2 (permalink)  
Antiguo 10/01/2003, 09:33
Avatar de DanielRey
Usuario no validado
 
Fecha de Ingreso: enero-2001
Ubicación: Mendoza
Mensajes: 630
Antigüedad: 23 años, 4 meses
Puntos: 1
Hola Meru-Kun

Select A.JUEGO, B.SECCION
From GAMES_GAMES A, GAMES_SECC B
Where A.ID_JUEGO = B.ID_JUEGO
And A.JUEGO = 'FinaLFantasy'

Suerte
  #3 (permalink)  
Antiguo 10/01/2003, 15:28
Avatar de meru-kun  
Fecha de Ingreso: noviembre-2002
Ubicación: Madrid
Mensajes: 854
Antigüedad: 21 años, 6 meses
Puntos: 0
He puesto este codigo:
Código:
<%
strSQLCogerGame = "Select S.SECCION, S.LINK FROM GAMES_SECC S, GAMES_GAMES G WHERE "
strSQLCogerGame = strSQLCogerGame & " S.ID_JUEGO = G.ID_JUEGO AND"
strSQLCogerGame = strSQLCogerGame & " G.JUEGO =" & "'" &txtGame & "'"
response.write (strSQLCogerGame)
Set MyRecordset = myconn.execute(strSQLCogerGame)
%>
Y me da el siguiente error:
Microsoft OLE DB Provider for ODBC Drivers error '80040e10'

[Microsoft][Controlador ODBC Microsoft Access] Pocos parámetros. Se esperaba 1.

/_index/inc_secc_games.asp, line 11

(line 11 = set my recordset = my ....)

¿Por que pasa eso?
__________________
Tu portal de manga y anime.

Última edición por meru-kun; 10/01/2003 a las 15:38
  #4 (permalink)  
Antiguo 10/01/2003, 16:16
Avatar de RootK
Moderador
 
Fecha de Ingreso: febrero-2002
Ubicación: México D.F
Mensajes: 8.004
Antigüedad: 22 años, 4 meses
Puntos: 50
Ya probaste con algo como esto:

strSQLCogerGame = "Select S.SECCION, S.LINK FROM GAMES_SECC as S, GAMES_GAMES as G WHERE"
strSQLCogerGame = strSQLCogerGame & " S.ID_JUEGO = G.ID_JUEGO AND"
strSQLCogerGame = strSQLCogerGame & " G.JUEGO ='"&txtGame &"'"

Saludos
__________________
Nadie roba nada ya que en la vida todo se paga . . .

Exentrit - Soluciones SharePoint & Net
  #5 (permalink)  
Antiguo 10/01/2003, 16:24
Avatar de meru-kun  
Fecha de Ingreso: noviembre-2002
Ubicación: Madrid
Mensajes: 854
Antigüedad: 21 años, 6 meses
Puntos: 0
Pues me sigue dando el mismo error... :(
Yo lo unico qeu quiero con la consulta es que se cojan todos los datos de la tabla que tenga la id_juego igual a la id_juego del parametro txtGame

Ayuda!"
__________________
Tu portal de manga y anime.

Última edición por meru-kun; 11/01/2003 a las 09:31
  #6 (permalink)  
Antiguo 11/01/2003, 10:31
Avatar de meru-kun  
Fecha de Ingreso: noviembre-2002
Ubicación: Madrid
Mensajes: 854
Antigüedad: 21 años, 6 meses
Puntos: 0
El codig que tengo ahora es:
Código:
strSQLCogerGame = "Select S.SECCION, S.LINK FROM GAMES_SECC as S, GAMES_GAMES as G WHERE"
strSQLCogerGame = strSQLCogerGame & " S.ID_JUEGO = G.ID_JUEGO AND"
strSQLCogerGame = strSQLCogerGame & " G.JUEGO ='"&txtGame &"'" 
response.write (strSQLCogerGame)
Set MyRecordset = myconn.execute(strSQLCogerGame)
Pero me sigue dando el mismo error (se esperaba 1 parametro...)
__________________
Tu portal de manga y anime.
  #7 (permalink)  
Antiguo 13/01/2003, 06:18
Avatar de DanielRey
Usuario no validado
 
Fecha de Ingreso: enero-2001
Ubicación: Mendoza
Mensajes: 630
Antigüedad: 23 años, 4 meses
Puntos: 1
Pues... no veo el error

Espero que alguien más inteligente y con más experiencia lea este mensaje y nos de la respuesta, porque para mi la sentencia es correcta y debería funcionar.

Sólo por probar, poné así:

strSQLCogerGame = "Select GAMES_SECC.SECCION, GAMES_SECC.LINK FROM GAMES_SECC, GAMES_GAMES WHERE"
strSQLCogerGame = strSQLCogerGame & " GAMES_SECC.ID_JUEGO = GAMES_GAMES.ID_JUEGO AND"
strSQLCogerGame = strSQLCogerGame & " GAMES_GAMES.JUEGO LIKE '%"&txtGame &"%'"
response.write (strSQLCogerGame)
Set MyRecordset = myconn.execute(strSQLCogerGame)

Suerte
  #8 (permalink)  
Antiguo 31/01/2003, 17:58
 
Fecha de Ingreso: enero-2003
Ubicación: Resistencia, Chaco, Argentina
Mensajes: 18
Antigüedad: 21 años, 4 meses
Puntos: 0
Microsoft OLE DB Provider for ODBC Drivers error '80040e10'

[Microsoft][Controlador ODBC Microsoft Access] Pocos parámetros. Se esperaba 1.

Este error siempre ocurre cuando escribimos mal el nombre de algún campo, o el campo no existe, o algo similar.

En tu código...

Código:
strSQLCogerGame = "Select S.SECCION, S.LINK   FROM GAMES_SECC S , GAMES_GAMES G WHERE "
strSQLCogerGame = strSQLCogerGame & " S.ID_JUEGO = G.ID_JUEGO AND"
strSQLCogerGame = strSQLCogerGame & " G.JUEGO =" & "'" &txtGame & "'"
response.write (strSQLCogerGame)
Set MyRecordset = myconn.execute(strSQLCogerGame)
...está mal el campo LINK, este campo pertenece a la tabla GAMES y no a la tabla SECC.

para solucionarlo reemplazá:

Código:
S.LINK
por:

Código:
G.LINK
UN CONSEJITO:

para mejorar la legibilidad de tu código, sería mejor que uses mayúsculas para las sentencias SQL y no para las tablas y nombres de campos. Además deberías usar prefijos para los nombres de tablas y consultas.

Por ejemplo:

Código:
strSQL = "SELECT S.Seccion, G.Link" & _
               " FROM tblGames AS G, tblSecciones AS S" & _
               " WHERE S.IdJuego = G.IdJuego" & _
               " AND G.Juego = '" & strGame & "'"

Set MyRS = MyConn.Execute(strSQL)
Este código es el mismo que el tuyo, pero es más legible.

Saludos.

PD: usá el prefijo tbl para las tablas, qry para las consultas. Los nombres de campos sin prefijos, sin guiones bajos, sin espacios, please.
__________________
Gustavo Azcona®
  #9 (permalink)  
Antiguo 31/01/2003, 22:08
 
Fecha de Ingreso: julio-2002
Ubicación: stgo rec
Mensajes: 438
Antigüedad: 21 años, 10 meses
Puntos: 3
Para unir dos tablas

Holas

Si lo que quieres es unir la info de 2 o mas tablas debe hacer lo siguiente


Seleccionar los campos de las tablas a mostrar

Select Tabla1.*,Tabla2.campo1,Tabla2.campo2 FROM Tabla1,Tabla2

espero que se entienda la idea, el * sirve pa seleccionar todos los campos, pero tb puedes poner el nombre del campo

luego debes hacer el enlace entre las dos tablas y las condiciones

WHERE Tabla1.ID=Tabla2.ID AND Tabla2.campo='Dato'

Este es el enlace, es para saber cual campo sirbe de relacion en las dos tablas = Tabla1.ID=Tabla2.ID


la sql te quedaria asi +o-

Select Tabla1.*,Tabla2.campo1,Tabla2.campo2 FROM Tabla1,Tabla2 WHERE Tabla1.ID=Tabla2.ID AND Tabla2.campo='Dato' ORDER BY Tabla2.campo3
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 18:42.