Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Olá pessoal,
to com uma certa dificuldade em montar uma consulta aqui, quero retornar o nome do colunista, o titulo da ultima materia, a data desta ultima materia e o ID do colunista, eu acho que estou conseguindo retornar certo os colunistas porem o titulo e a data da materia não ta retornando correto.
a consulta serve para mostrar os colunistas que não postam materias a mais de 7 dias, portanto eu quero selecionar o id do colunistas que tenha materia publicada antes de 25/10/2007 e não tenha nada publicado depois de 25/10/2007.
SELECT
colunistas.nome
, materia.titulo
, materia.data_inicio
, colunistas.colunistaID
FROM
materia
INNER JOIN colunistas
ON (materia.colunistaID = colunistas.colunistaID)
WHERE materia.data_inicio <= '2007-10-25'
AND NOT materia.data_inicio > '2007-10-25'
AND colunistas.desativado = 0
GROUP BY colunistas.colunistaID
ORDER BY materia.data_inicio DESC LIMIT 10 ;
Bom ta ai, se alguem puder me ajudar...
Abraço
Opa, ta ai a estrutura
CREATE TABLE `stats` (
`id` int(6) NOT NULL AUTO_INCREMENT,
`materiaID` int(5) NOT NULL,
`colunistaID` int(5) NOT NULL,
`colunaID` int(5) NOT NULL,
`data` datetime NOT NULL,
`ip` varchar(15) NOT NULL,
`controle` date NOT NULL,
UNIQUE KEY `id` (`id`),
KEY `Otimizacao1` (`controle`,`materiaID`),
KEY `Otimizacao2` (`colunistaID`,`materiaID`,`controle`),
KEY `Otimizacao3` (`materiaID`,`ip`),
KEY `Otimizacao4` (`materiaID`,`ip`,`controle`)
)
CREATE TABLE `colunistas` (
`colunistaID` int(10) NOT NULL AUTO_INCREMENT,
`nome` varchar(50) NOT NULL DEFAULT '',
`profissao` varchar(50) NOT NULL DEFAULT '',
`email` varchar(80) NOT NULL DEFAULT '',
`curriculo` text NOT NULL,
`resumido` varchar(255) NOT NULL,
`telefone` varchar(30) NOT NULL DEFAULT '',
`senha` varchar(100) NOT NULL DEFAULT '',
`foto_pequena` varchar(40) NOT NULL DEFAULT '',
`foto_grande` varchar(40) NOT NULL DEFAULT '',
`colunas` varchar(30) NOT NULL DEFAULT '',
`data` date NOT NULL DEFAULT '0000-00-00',
`desativado` int(1) NOT NULL DEFAULT '0',
PRIMARY KEY (`colunistaID`),
UNIQUE KEY `email` (`email`)
)>
Olá pessoal,
to com uma certa dificuldade em montar uma consulta aqui, quero retornar o nome do colunista, o titulo da ultima materia, a data desta ultima materia e o ID do colunista, eu acho que estou conseguindo retornar certo os colunistas porem o titulo e a data da materia não ta retornando correto.
a consulta serve para mostrar os colunistas que não postam materias a mais de 7 dias, portanto eu quero selecionar o id do colunistas que tenha materia publicada antes de 25/10/2007 e não tenha nada publicado depois de 25/10/2007.
SELECT
colunistas.nome
, materia.titulo
, materia.data_inicio
, colunistas.colunistaID
FROM
materia
INNER JOIN colunistas
ON (materia.colunistaID = colunistas.colunistaID)
WHERE materia.data_inicio <= '2007-10-25'
AND NOT materia.data_inicio > '2007-10-25'
AND colunistas.desativado = 0
GROUP BY colunistas.colunistaID
ORDER BY materia.data_inicio DESC LIMIT 10 ;
Bom ta ai, se alguem puder me ajudar...
Abraço
zé tudo certo ?
bom primeiramente gostaria de saber qual banco de dados está usando, para mover seu tópico para área mais adequada okay.
Como eu vi a estrutura da sua tabela o campo DATA que você tem é do tipo datetime.
WHERE materia.data_inicio <= '2007-10-25'
AND NOT materia.data_inicio > '2007-10-25'
eu já tive um problema que com consultas com datas tente assim:
WHERE materia.data_inicio <= '2007-10-25 00:00:00.000'
AND NOT materia.data_inicio > '2007-10-25 23:59:59.999'
pode ser que nesse caso não ajude muito, mas quando for fazer outras consultas com data vai ajudar..
http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif
Opa David, beleza?
Bom o banco eh MySQL, e o campo datetime é da tabela stats e não é o campo que estou usando na WHERE da consulta, o campo em questão é do tipo DATE mesmo.
Abraço
ze_violeiro,
Poste a estrutura de sua tabela pra ficar mais fácil o pessoal analisar.