Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

ejckson

Erro ao colocar inner Join

Recommended Posts

Olá pessoal, eu mais uma vez pedindo ajuda de vocês!

 

busca sql retorna resultado normal, porem, ao adicionar intervalo de datas, retorna zero!

 

Vejam, eu tenho:

 

SELECT * FROM p_texto

INNER JOIN p_texto_cat ON p_texto.categoria_id = p_texto_cat.id_categoria

INNER JOIN p_texto_mod ON p_texto.modalidade_id = p_texto_mod.id_modalidade

WHERE modalidade_id = 9 AND categoria_id = 1

 

Isso me retorna resultado normal.

 

Agora se eu adicionar o intervalo de datas AND data BETWEEN 2010-02-10 AND 2014-02-17

retorna zero resultados!

 

Teste no link abaixo:

 

SQL FIDDLE

 

SQL COMPLETO COM ERRO

 

SELECT * FROM p_texto

INNER JOIN p_texto_cat ON p_texto.categoria_id = p_texto_cat.id_categoria

INNER JOIN p_texto_mod ON p_texto.modalidade_id = p_texto_mod.id_modalidade

WHERE modalidade_id = 9 AND categoria_id = 1 AND data BETWEEN 2010-02-10 AND 2014-02-17

Compartilhar este post


Link para o post
Compartilhar em outros sites

O campo data tem qual formato ?

Tente usar functions para converter os dois lados da pesquisa para o mesmo formato de preferencia date.

DATA não é um nome de campo recomendável pois é palavra reservada em MySql e outros linguagens e ambientes.



http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ok, mais uma vez obrigado Motta! Consegui!

 

Utilizei a função como recomendou, inseri aspas simples na data, alterei o nome do campo e funfou normal! Vlwwww!

 

SELECT * FROM p_texto 
INNER JOIN p_texto_cat ON p_texto.categoria_id = p_texto_cat.id_categoria 
INNER JOIN p_texto_mod ON p_texto.modalidade_id = p_texto_mod.id_modalidade 
WHERE 1=1 AND categoria_id = 1 AND atualizado BETWEEN '2011-01-01' AND '2011-12-28'

 

<?php
function formatarData($_date = null) {
$format = '/^([0-9]{2})\/([0-9]{2})\/([0-9]{4})$/';
if ($_date != null && preg_match($format, $_date, $partes)) {
return $partes[3].'-'.$partes[2].'-'.$partes[1];
}
return false;
}
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.