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_PRODUCTS_INGREDIENTS
TB_PRODUCTS
TB_INGREDIENTES
Iwantedtomakeaselect
withthesecolumns,butyes,theyexistinthetable.Butinthefirstselect
,beforeUNIONALL
,ifIputthefieldsoftableTB_PRODUTOS_INGREDIENTES.ID_PRODUTOS_INGREDIENTES
andTB_PRODUTOS_INGREDIENTES.QUANTIDADE_INGREDIENTE_USADO
,the MySQL , returns that Error (1) . Now, if I swap those fields, by any number, the query executes 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 occur?
Editing
I need the result like this:
Note that the percentages in percent are the additions.
They are defined by the amarelo
column by the number acréscimos
. So every record that has the% number of% in the column is an addition.