SQL - Consulta SQL varias tablas

 
Vista:
sin imagen de perfil
Val: 9
Ha aumentado 1 puesto en SQL (en relación al último mes)
Gráfica de SQL

Consulta SQL varias tablas

Publicado por Iain (5 intervenciones) el 18/02/2020 19:11:19
Hola,

Para un ejercicio de aprendizaje, quiero obtener una consulta sobre las tablas DOCUMENT, ADDRESS, POSITIONS y PRODUCT pero no sé como relacionar la tabla PRODUCT con el resto de tablas, ¿pueden ayudarme?

Esta es la consulta que estoy probando (a falta de relacionar la tabla PRODUCT):

SELECT ADDRESS.FIRSTNAME, DOCUMENT.ID, POSITIONS.QUANTITY, POSITIONS.PRICE, PRODUCT.NAME
FROM DOCUMENT
JOIN ADDRESS ON (DOCUMENT.ADDRESSID=ADDRESS.ID)
JOIN POSITIONS ON (DOCUMENT.ID=POSITIONS.DOCUMENTID)

Y estas son las tablas de la BDD:

tablas-bdd


Saludos
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de pablo
Val: 21
Ha mantenido su posición en SQL (en relación al último mes)
Gráfica de SQL

Consulta SQL varias tablas

Publicado por pablo (9 intervenciones) el 19/02/2020 14:22:22
Hola Lain

Intentaste de está manera:

1
2
3
4
5
SELECT ADDRESS.FIRSTNAME, DOCUMENT.ID, POSITIONS.QUANTITY, POSITIONS.PRICE, PRODUCT.NAME
FROM DOCUMENT
JOIN ADDRESS ON (DOCUMENT.ADDRESSID=ADDRESS.ID)
JOIN POSITIONS ON (DOCUMENT.ID=POSITIONS.DOCUMENTID)
JOIN PRODUCT ON (PRODUCT.ID = POSITIONS.ID)

Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 9
Ha aumentado 1 puesto en SQL (en relación al último mes)
Gráfica de SQL

Consulta SQL varias tablas

Publicado por Iain (5 intervenciones) el 20/02/2020 20:22:03
Gracias por contestar, Pablo. Así no funciona.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 9
Ha aumentado 1 puesto en SQL (en relación al último mes)
Gráfica de SQL

Consulta SQL varias tablas

Publicado por Iain (5 intervenciones) el 23/02/2020 18:52:59
Hola, Pablo, finalmente me ha funcionado así, que creo que es lo mismo que tú decías:

SELECT
1
2
3
4
5
6
7
8
9
10
11
12
13
document.id as iddoc, address.id as idaddress,
address.firstname, address.lastname,
address.city, address.street,
product.name, positions.quantity,
positions.price
FROM
positions
JOIN
product ON (positions.productid = product.id)
JOIN
document ON (document.id=positions.documentid)
JOIN
address ON (document.addressid=address.id)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 92
Ha mantenido su posición en SQL (en relación al último mes)
Gráfica de SQL

Consulta SQL varias tablas

Publicado por Luis Horacio (38 intervenciones) el 19/02/2020 14:27:14
Buenos días,

Para que puedas hacer eso, debe de crear una tabla que se llame ORDERS_PRODUCT con los campos ORDERID y ID (PRODUCT), para que le almacene los productos por orden
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 9
Ha aumentado 1 puesto en SQL (en relación al último mes)
Gráfica de SQL

Consulta SQL varias tablas

Publicado por Iain (5 intervenciones) el 20/02/2020 20:24:13
Tras mucho probar encontré esta solución:

1
2
3
4
5
6
7
SELECT * FROM DOCUMENT, ADDRESS, PRODUCT, POSITIONS
WHERE
         DOCUMENT.ADDRESSID = ADDRESS.ID
AND
         DOCUMENT.ID = POSITIONS.DOCUMENTID
AND
         POSITIONS.DOCUMENTID = PRODUCT.ID

Gracias todos!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 9
Ha aumentado 1 puesto en SQL (en relación al último mes)
Gráfica de SQL

Consulta SQL varias tablas

Publicado por Iain (5 intervenciones) el 23/02/2020 18:53:45
La solución anterior tampoco funcionaba, me ha funcionado esta que dejo por si a alguien le sirve:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
SELECT
document.id as iddoc, address.id as idaddress,
address.firstname, address.lastname,
address.city, address.street,
product.name, positions.quantity,
positions.price
FROM
positions
JOIN
product ON (positions.productid = product.id)
JOIN
document ON (document.id=positions.documentid)
JOIN
address ON (document.addressid=address.id)
Saludos, y disculpad el error
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar