PDA

Ver la Versión Completa : ayuda con sentencia SQL en ASP.....


foetus
13-08-2007, 16:19:40
bueno antes q todo puse este post aquy y no en la seccion de SQL, porque la sentencia esta bien....

bueno, lo que quiero es hacer una union de tablas. prove con una uno interna. derecha, izquierda, etc. INNER JOIN, RIGHT JOIN, LEFT JOIN.....
y me funciono pero estas uniones solo me devuelve los campos comunes entre ambas tablas, como quiero q me devuelva todos los campos de ambas tablas usé: FULL JOIN. pero aquy me da un error indefinido o sea no me dice cual es el error, pero en la linea que me da el error tengo el objeto recorset ejecutando la sentencia SQL.

mi pregunta es: existe alguna otra forma de hacer una union y que me devuelva todos los campos de ambas tablas? o que podria estar pasando, porque con las otras uniones no me da ese error y con esta si?.....

bueno mas bien son dos preguntas.......

no puse ningun codigo, porque se que la mayoria de las personas de este foro saben PHP y no ASP. asi que me pueden explicar como sea... ...

Saludos,
foetus

foetus
15-08-2007, 19:52:40
bueno, como nadie me ah respondido. entonces voy a mostrar el codigo.


Dim oConn,strSQL, objRS, RS

Set oConn = Server.CreateObject("ADODB.Connection")
oConn.Open "Provider=Microsoft.Jet.OLEDB.4.0; Data Source="& Server.MapPath("user.mdb")

strSQL = "SELECT * FROM Anuncios INNER JOIN login ON anuncios.id = login.id"
Set objRS = oConn.Execute(strSQL)
Set RS = Server.CreateObject ("ADODB.RecordSet")
RS.Open strSQL, oConn



en este caso no me da ningun error. pero como dije antes solo me permite sellecionar los campos comunes entre ambas tablas, y lo que yo quiziera es: poder seleccionar todos los campos de ambas tablas. claro cuando se cumpla la condicion anuncios.Id = login.Id

pero cuando intento algo como esto....

Dim oConn,strSQL, objRS, RS

Set oConn = Server.CreateObject("ADODB.Connection")
oConn.Open "Provider=Microsoft.Jet.OLEDB.4.0; Data Source="& Server.MapPath("user.mdb")

strSQL = "SELECT * FROM Anuncios FULL JOIN login ON anuncios.id=login.id"
Set objRS = oConn.Execute(strSQL)
Set RS = Server.CreateObject ("ADODB.RecordSet")
RS.Open strSQL, oConn

Sustituyo: INNER JOIN por FULL JOIN
me da error en esta linea: Set objRS = oConn.Execute(strSQL)
pero no me especifica cual es el error.....:confused:

papulo
17-08-2007, 09:51:45
Prueba con OUTER JOIN (http://en.wikipedia.org/wiki/Outer_join#Left_outer_join) que te devolverá todas las filas de la búsqueda.

Saluditos.

foetus
24-08-2007, 21:43:06
bueno, ya prove lo que me dijiste y lei el articulo, que dejaste.
pero me sigue dando el mismo error.

creo q es del lenguaje. no es de la consulta SQL, la consulta esta bien. pero no puedo saber, porque no me expecifica el error.

creo q tendre q tratar de otra forma menos legible....;)

Paoti
24-08-2007, 22:56:29
hola

prueba asi

SELECT * FROM Anuncios, login
where anuncios.id = login.id


ó

tu sentencia, ejecutala desde access y ve si te funcina


SELECT * FROM Anuncios INNER JOIN login ON anuncios.id = login.id


quizas acceso la tome como palabra reservada "login"

Paoti
24-08-2007, 23:03:24
cielos no lei bien

ejecuta la ultima sentencia desde access haber si te permite, y es access, no creo que sea tan potetente


lo que se me ocurre, si no te funciona eso, es usar INTERSECT, CON UN PRODUCTO CARTEAISNO,

mmmh no, olvidalo, me estoy confundiendo yo solo.

:(


ejecuta la senetcia en access, directamente