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

Error Con Inner Join

Estas en el tema de Error Con Inner Join en el foro de ASP Clásico en Foros del Web. [Microsoft][Controlador ODBC Microsoft Access] La expresión de combinación no está admitida. /web/AD/listprod.asp, line 110 tabla productos tiene en comun con tabla videoclu idvideo idvideo es ...
  #1 (permalink)  
Antiguo 16/10/2003, 04:55
 
Fecha de Ingreso: mayo-2003
Mensajes: 866
Antigüedad: 21 años, 1 mes
Puntos: 0
Error Con Inner Join

[Microsoft][Controlador ODBC Microsoft Access] La expresión de combinación no está admitida.
/web/AD/listprod.asp, line 110
tabla productos tiene en comun con tabla videoclu idvideo
idvideo es la clave principal de la tabla videoclub.

<%
set rslistprod=db.Execute("select * from productos order by idproducto")
idproducto=rslistprod("idproducto")
nombreproducto=rslistprod("nombreproducto")
precio=rslistprod("precio")
imagen=rslistprod("imagen")
idvideo=rslistprod("idvideo")
%>
<%
while not rslistprod.eof
%>
<a href="product.asp?idproducto=<%=rslistprod("idprod ucto") %>">
<%=rslistprod("idproducto") %>
<%=rslistprod("imagen")%>
<%=rslistprod("nombreproducto") %>
<% =formatnumber(rslistprod("precio")) %>
<%’ AQUÍ ES DONDE ESTA EL ERROR
'Obtener los detalles relevantes del producto en relacion con el videoclub
set rsvidprod=db.execute("SELECT * FROM productos INNER JOIN videoclub ON productos.idvideo =" & rslistprod("idvideo") & " order by idvideo")


if rsvidprod.eof then
response.redirect("error.asp?mensage=" & Server.URLEncode("ERROR SEIS."))
end if
idvideo=rsvidprod("idvideo")
nombrevid=rsvidprod("nombrevid")%>
<%=rsvidprod("nombrevid") %>
<%
rslistprod.movenext
wend
%>

El problema es que no entiendo bien como se construyen los innner join

Gracias por anticipado
  #2 (permalink)  
Antiguo 16/10/2003, 12:13
ACHAVARRIA
Invitado
 
Mensajes: n/a
Puntos:
te recomiendo ver las siguientes direccciones:

http://www.eside.deusto.es/grupos/ge...puntes/SQL.pdf

http://www.forosdelweb.com/showthrea...ghlight=google
  #3 (permalink)  
Antiguo 16/10/2003, 12:25
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
Cita:
set rsvidprod=db.execute("SELECT * FROM productos INNER JOIN videoclub ON productos.idvideo =" & rslistprod("idvideo") & " order by idvideo")
Creo que te falta unir la llave de tu tabla productos con la llave de videoclub.

Quedaría así:

Cita:
set rsvidprod=db.execute("SELECT * FROM productos INNER JOIN videoclub ON productos.idvideo = videoclub.idvideo where productos.idvideo =" & rslistprod("idvideo") & " order by idvideo")

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

Exentrit - Soluciones SharePoint & Net
  #4 (permalink)  
Antiguo 17/10/2003, 03:31
 
Fecha de Ingreso: mayo-2003
Mensajes: 866
Antigüedad: 21 años, 1 mes
Puntos: 0
Gracias a ambos por vuestras respuestas, he probado lo que dijo
Rootk y obtengo este error:
Tipo de error:
Microsoft OLE DB Provider for ODBC Drivers (0x80004005)
[Microsoft][Controlador ODBC Microsoft Access] Puede que el campo 'idvideo' especificado haga referencia a más de una tabla de las mostradas en la cláusula FROM de la instrucción SQL.
/webgomar/admin/listprod.asp, line 110

El campo idvideo solo aparece en la tabla videoclub y productos.
¿Porque aparece este error?
  #5 (permalink)  
Antiguo 17/10/2003, 04:52
Avatar de AlexNV  
Fecha de Ingreso: junio-2003
Ubicación: Madrid
Mensajes: 289
Antigüedad: 21 años
Puntos: 1
set rsvidprod=db.execute("SELECT * FROM productos INNER JOIN videoclub ON productos.idvideo = videoclub.idvideo where productos.idvideo =" & rslistprod("idvideo") & " order by productos.idvideo")
  #6 (permalink)  
Antiguo 17/10/2003, 05:20
 
Fecha de Ingreso: mayo-2003
Mensajes: 866
Antigüedad: 21 años, 1 mes
Puntos: 0

GRACIAS AlexNV funciono perfectamente.
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 15:35.