Select com IF

Enviada por Flavio 
Flavio
Select com IF
25 de October de 2011 às 06:04AM
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,
`preco` 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`, `preco`) VALUES(1, 0.00);
INSERT INTO `tb_teste` (`ID`, `preco`) 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,
`preco` 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`, `preco`) VALUES(1, 50000.00);
INSERT INTO `tb_teste_temp` (`ID`, `preco`) 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.preco = 0.00 então selecione na tb_teste_temp pelo preço de 10000.00 ente(between) 100000.00

Meu Select da primeira tb_teste ficou assim a unica coisa que não estou conseguindo fazer é a condição.
SELECT tb_teste.ID FROM tb_teste WHERE (tb_teste.preco between '10000.00' and '100000.00')

Obrigado
Marcos Regis
Re: Select com IF
27 de October de 2011 às 12:15PM
Tente assim

SELECT
ID,
IF(t1.preco>0,t1.preco,IF(t2.preco>10000 AND t2.preco <10000,t2.preco,0)) preco
FROM tb_teste t1
INNER JOIN tb_teste_temp t2 ON (t1.ID=t2.ID)
Você precisa estar logado no PHPBrasil.com para poder enviar mensagens para os nossos fóruns.

Faça o login aqui.