Sobre la misma consulta de SQL

Estimado Experto, esta es mi tercera pregunta consecutiva y pan con lo mismo... La verdad es que no me gustaría estar molestándote, pero pues esta ves quisiera ir un poco más despacio, me explico...
Deseo una consulta de selección donde me muestre todos los servicios que cada proveedor ofrece, las tablas están así...
tblPROVEEDOR: ID(Llave, autonumérico) - PROVEEDOR
1-P1
2-P2
3-P3
tblSERVICIOS: ID(Llave, autonumérico) - SERVICIOS
1-S1
2-S2
3-S3
tblPROVEEDORlinkSERVICIOS: IDPROVEEDOR - IDSERVICIOS (estos 2 campos en su conjunto constituyen la Llave)
1-1
1-2
1-3
2-2
2-3
3-1
El resultado de la consulta debería quedar así...
P1-S1
P1-S2
P1-S3
P2-S2
P2-S3
P3-S1
Un favor más... ¿es posible que escribas la consulta sin alias? Es que con alias se me complica, ya cuando la tenga controlada (espero¡!) Haré consultas así.

1 respuesta

Respuesta
1
Tu consulta quedaría algo así:
Select proveedor,servicios
from tblproveedor inner join tblproveedorlinkservicio
on tblproveedor.id=tblproveedorlinkservicio.idproveedor
inner join tblservicios on tblproveedorlinkservicio.idservicios=tblservicios.id
claro que despues te recomiendo que uses los alias ya que hacen que tu consulta sea mas limpio o entendible. ademas de que escribes menos.
Hola!, muchas gracias por tu diligencia, mmm, no se que este pasando, he copiado y pegado la estructura de tu consulta y al querer ejecutarla me dice que existe un error de sintaxis, que falta un operador, tal vez deba aclarar que estoy efectuando las consultas en Access 2007, aunque en realidad no creo que tenga mucho que ver ya que estos comandos si los reconoce, ¿crees qué podría ser la falta de algún AND o de algunos paréntesis? .
Gracias!
Si cambia un poco la sintaxis ya que hay que poner paréntesis en la consulta de los inner join.
SELECT dbo_TBLPROVEEDOR.proveedor, dbo_TBLSERVICIOS.SERVICIOS
FROM (dbo_TBLPROVEEDOR INNER JOIN dbo_tblPROVEEDORlinkSERVICIO ON dbo_TBLPROVEEDOR.id = dbo_tblPROVEEDORlinkSERVICIO.IDPROVEEDOR) INNER JOIN dbo_TBLSERVICIOS ON dbo_tblPROVEEDORlinkSERVICIO.IDSERVICIOS = dbo_TBLSERVICIOS.ID;
Esta consulta la puedes realizar por medio del diseñador de sonsultas de access,
solo agrega las 3 tablas, relaciona los id de proveedor y servicios de modo gráfico (esto se hace seleccionando el campo id de la tabla proveedor y arrastrar con el mouse al idproveedor de la tabla proveedorlinkservicios y haces lo mismo para el id servicios con el id de servicios.
Te paso este link donde te indican las sintaxis del inner join para access
http://office.microsoft.com/es-es/access/HA012314873082.aspx
Estimado Experto, de verdad que estoy muy agradecido por que sin su ayuda nunca le hubiera entendido a la sintaxis de las consultas multitablas, ahora sigue usar los alias..., dejo la consulta como la hice para que si alguien llega hasta esta pregunta le sirva...
SELECT fldPROVEEDOR, fldSERVICIO
FROM tblPROVEEDOR INNER JOIN (tblPROVEEDORlinkACTIVIDAD INNER JOIN (tblSERVICIOS)
ON tblSERVICIOS.fldId = tblPROVEEDORlinkSERVICIOS.fldIdSERVICIO) ON tblPROVEEDOR.fldId = tblPROVEEDORlinkSERVICIOS.fldIdPROVEEDOR;
Solo hay que tener cuidado con los paréntesis, se abren después de escribir INNER JOIN y se cierran antes de ON, y las comparaciones se resuelven en el orden en que estén anidadas.
Nuevamente muchísimas gracias!

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas