0
Code:
(SELECT
TB_INGREDIENTES.ID_INGREDIENTE,
TB_INGREDIENTES.INGREDIENTE,
TB_INGREDIENTES.QUANTIDADE_INGREDIENTE_TOTAL,
TB_INGREDIENTES.FLAG,
TB_INGREDIENTES.ACRESCIMO,
TB_PRODUTOS_INGREDIENTES.ID_PRODUTOS_INGREDIENTES,
TB_PRODUTOS_INGREDIENTES.QUANTIDADE_INGREDIENTE_USADO,
TB_PRODUTOS.ID_PRODUTO,
TB_PRODUTOS.NOME_PRODUTO,
TB_PRODUTOS.DESCRICAO_PRODUTO,
TB_PRODUTOS.TIPO_PRODUTO,
TB_PRODUTOS.PRECO_PRODUTO
FROM `TB_INGREDIENTES`
INNER JOIN TB_PRODUTOS ON TB_PRODUTOS.ID_PRODUTO = 1
WHERE TB_INGREDIENTES.ACRESCIMO = 1)
UNION ALL
(SELECT
TB_INGREDIENTES.ID_INGREDIENTE,
TB_INGREDIENTES.INGREDIENTE,
TB_INGREDIENTES.QUANTIDADE_INGREDIENTE_TOTAL,
TB_INGREDIENTES.FLAG,
CASE
WHEN TB_INGREDIENTES.ACRESCIMO = 1 THEN 0
ELSE TB_INGREDIENTES.ACRESCIMO
END AS ACRESCIMO,
TB_PRODUTOS_INGREDIENTES.ID_PRODUTOS_INGREDIENTES,
TB_PRODUTOS_INGREDIENTES.QUANTIDADE_INGREDIENTE_USADO,
TB_PRODUTOS.ID_PRODUTO,
TB_PRODUTOS.NOME_PRODUTO,
TB_PRODUTOS.DESCRICAO_PRODUTO,
TB_PRODUTOS.TIPO_PRODUTO,
TB_PRODUTOS.PRECO_PRODUTO
FROM `TB_PRODUTOS_INGREDIENTES`
INNER JOIN TB_PRODUTOS ON TB_PRODUTOS.ID_PRODUTO = TB_PRODUTOS_INGREDIENTES.ID_PRODUTO
INNER JOIN TB_INGREDIENTES ON TB_INGREDIENTES.ID_INGREDIENTE = TB_PRODUTOS_INGREDIENTES.ID_INGREDIENTE
WHERE TB_PRODUTOS_INGREDIENTES.ID_PRODUTO = 1)
Error: (1)
Unknown column 'TB_PRODUTOS_INGREDIENTES.ID_PRODUTOS_INGREDIENTES' in 'field list'
Tables:
TB_PRODUTOS_INGREDITES
TB_PRODUTOS
TB_INGREDITES
I wanted to make a select
with these columns, and yes, they exist in the table. But in the first select
, before the UNION ALL
, if I place the table fields TB_PRODUTOS_INGREDIENTES.ID_PRODUTOS_INGREDIENTES
and TB_PRODUTOS_INGREDIENTES.QUANTIDADE_INGREDIENTE_USADO
, the Mysql, returns that Error (1). Now, if I exchange those fields for any number, the query runs normal.
Query code executed with any number
(SELECT
TB_INGREDIENTES.ID_INGREDIENTE,
TB_INGREDIENTES.INGREDIENTE,
TB_INGREDIENTES.QUANTIDADE_INGREDIENTE_TOTAL,
TB_INGREDIENTES.FLAG,
TB_INGREDIENTES.ACRESCIMO,
20, -- Colocando qualquer número
20, -- Colocando qualquer número
TB_PRODUTOS.ID_PRODUTO,
TB_PRODUTOS.NOME_PRODUTO,
TB_PRODUTOS.DESCRICAO_PRODUTO,
TB_PRODUTOS.TIPO_PRODUTO,
TB_PRODUTOS.PRECO_PRODUTO
FROM `TB_INGREDIENTES`
INNER JOIN TB_PRODUTOS ON TB_PRODUTOS.ID_PRODUTO = 1
WHERE TB_INGREDIENTES.ACRESCIMO = 1)
UNION ALL
(SELECT
TB_INGREDIENTES.ID_INGREDIENTE,
TB_INGREDIENTES.INGREDIENTE,
TB_INGREDIENTES.QUANTIDADE_INGREDIENTE_TOTAL,
TB_INGREDIENTES.FLAG,
CASE
WHEN TB_INGREDIENTES.ACRESCIMO = 1 THEN 0
ELSE TB_INGREDIENTES.ACRESCIMO
END AS ACRESCIMO,
TB_PRODUTOS_INGREDIENTES.ID_PRODUTOS_INGREDIENTES,
TB_PRODUTOS_INGREDIENTES.QUANTIDADE_INGREDIENTE_USADO,
TB_PRODUTOS.ID_PRODUTO,
TB_PRODUTOS.NOME_PRODUTO,
TB_PRODUTOS.DESCRICAO_PRODUTO,
TB_PRODUTOS.TIPO_PRODUTO,
TB_PRODUTOS.PRECO_PRODUTO
FROM `TB_PRODUTOS_INGREDIENTES`
INNER JOIN TB_PRODUTOS ON TB_PRODUTOS.ID_PRODUTO = TB_PRODUTOS_INGREDIENTES.ID_PRODUTO
INNER JOIN TB_INGREDIENTES ON TB_INGREDIENTES.ID_INGREDIENTE = TB_PRODUTOS_INGREDIENTES.ID_INGREDIENTE
WHERE TB_PRODUTOS_INGREDIENTES.ID_PRODUTO = 1)
Why does this happen?
Editing
I need the result like this:
Notice that the brands on amarelo
, are the additions.
They are defined by the column acréscimos
by number 1
. So every record that has the number 1
in the column, is an addition.
Have you seen if the column
ID_PRODUTOS_INGREDIENTES
exists in the tableTB_PRODUTOS_INGREDIENTES
?– gabrielhof