Bring select on a line with 2 references

0

Good afternoon, I would like to know if there are possibilities to bring everything in a row with the following tables:

Pedidos
id
id_produto1
id_produto2
id_produto3


Produtos

id
produto

I wanted to make a select that brings the orders table with the name of the products on the side of each product_id in a row. Is it possible?

Example

id   |    id_produto1   |  produto  |  id_produto2 | produto | id_produto3 | produto

1    |         2        |    arroz   |       3     |  feijão |       4     | Macarrão
    
asked by anonymous 05.11.2015 / 16:04

2 answers

1

If you see a relationship between the Order table and the Products table, you would need to use the foreign key of that relationship, for example:

SELECT PEDIDOS.ID, PEDIDOS.ID_PRODUTO1
(SELECT PRODUTOS.PRODUTO FROM PRODUTOS WHERE PRODUTOS.ID = PEDIDOS.ID_PRODUTO1) AS PRODUTO,
PEDIDOS.ID_PRODUTO2
(SELECT PRODUTOS.PRODUTO FROM PRODUTOS WHERE PRODUTOS.ID = PEDIDOS.ID_PRODUTO2) AS PRODUTO_2,
PEDIDOS.ID_PRODUTO3
(SELECT PRODUTOS.PRODUTO FROM PRODUTOS WHERE PRODUTOS.ID = PEDIDOS.ID_PRODUTO3) AS PRODUTO_3,
FROM PEDIDOS

In the case, RequestID would be the foreign key.

    
05.11.2015 / 16:11
0

You can make a INNER JOIN of the two tables by taking the id_product of the table orders and id of the products table to solve your problem:

Example:

SELECT PE.ID_PRODUTO
      ,PR.NOME
  FROM PEDIDOS AS PE
 INNER JOIN PRODUTOS AS PR ON PE.ID_PRODUTO = PR.ID
    
05.11.2015 / 16:21