Pessoal, preciso de uma ajuda. Estou fazendo um consulta no meu banco de dados em duas tabelas mas preciso usar um IF para isso, sei a lógica e tentei fazer de algumas formas mas não consegui. Tenho duas tabelas --
-- Estrutura da tabela `tb_teste`
--
CREATE TABLE IF NOT EXISTS `tb_teste` (
`ID` int(11) NOT NULL auto_increment,
`preço` float(40,2) NOT NULL,
PRIMARY KEY (`ID`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=3;
--
-- Extraindo dados da tabela `tb_teste`
--
INSERT INTO `tb_teste` (`ID`, `preço`) VALUES(1, 0.00);
INSERT INTO `tb_teste` (`ID`, `preço`) VALUES(2, 100000.00);
-- --------------------------------------------------------
--
-- Estrutura da tabela `tb_teste_temp`
--
CREATE TABLE IF NOT EXISTS `tb_teste_temp` (
`ID` int(11) NOT NULL auto_increment,
`preço` float(40,2) NOT NULL,
PRIMARY KEY (`ID`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=3;
--
-- Extraindo dados da tabela `tb_teste_temp`
--
INSERT INTO `tb_teste_temp` (`ID`, `preço`) VALUES(1, 50000.00);
INSERT INTO `tb_teste_temp` (`ID`, `preço`) VALUES(2, 100000.00);
------------------------------------------------------------------------
A lógica da minha consulta seria a seguinte
Selecionar na tabela tb_teste pelo preço de 10000.00 ente(between) 100000.00
Ai vem a parte que não estou conseguindo fazer.
Se o tb_teste.preço = 0.00 então selecione na tb_teste_temp pelo preço de 10000.00 ente(between) 100000.00
Com ajuda fiz algo assim mas não esta trazendo o resultado da temp, alguém tem uma forma para ajudar.
SELECT
ID,
if( preço = 0,( SELECT
preço
FROM
tb_teste_temp
WHERE
ID = tb_teste.ID and (tb_teste_temp.preço between '10000.00' and '100000.00')
), preço ) AS preço
FROM
tb_teste Where (tb_teste.preço between '10000.00' and '100000.00')