Ir para conteúdo

POWERED BY:

Arquivado

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

Apokalypse

Pesquisa em 2 tabelas mysql

Recommended Posts

dae pessoal....beleza??

seguinte: tenho 2 tabelas no mysql:

CREATE TABLE `receita_semana` (  `ID` int(15) NOT NULL auto_increment,  `Receita` int(15) NOT NULL default '0',  `Ativo` int(1) NOT NULL default '0',  PRIMARY KEY  (`ID`)) ENGINE=MyISAM;CREATE TABLE `receitas` (  `ID` int(15) NOT NULL auto_increment,  `Titulo` varchar(120) NOT NULL default '',  `Ativo` int(1) NOT NULL default '0',  PRIMARY KEY  (`ID`)) ENGINE=MyISAM;
OBS: a coluna receitas.ID tem relacao com receita_semana.Receita

 

 

Seguinte: preciso pegar todos os valores da tabela receitas, onde receitas.ID nao for igual a receita_semana.Receita.

Fiz a query, nas ele ta fazendo uma query para cada item da tabela receita_semana...

Minha query:

SELECT receitas.ID FROM receitas, receita_semana WHERE receitas.ID != receita_semana.Receita AND receitas.Ativo = 1 ORDER BY RAND() LIMIT 1
Como faço para ele me retornar somente os dados da tabela receita que nao tiverem cadastrado na tabela receita_semana????

 

Valeuuuuuuuuuuuuu

Compartilhar este post


Link para o post
Compartilhar em outros sites

O que ele está retornando ? mostre o codigo que exibe os resultados tb ...

 

tente assim ...

SELECT receitas.ID, receitas.Ativo, receita_semana.Receita FROM receitas, receita_semana WHERE receitas.ID != receita_semana.Receita AND receitas.Ativo = 1 ORDER BY RAND() LIMIT 1

 

Abraço.

Compartilhar este post


Link para o post
Compartilhar em outros sites

SELECT receitas.ID FROM receitas, receita_semana WHERE receitas.ID != receita_semana.Receita AND receitas.Ativo = 1 ORDER BY RAND() LIMIT 1

Bem o "receitas.ID" pelo que ele deve ser ele é um numero certo???

e o "receita_semana.Receita" não me parece um numero. por isso deve não estar funcionando... pois ja que ele pede numero ali você tem que colocar algo que represente um numero exemplo poderia ser receitas.ID != receita_semana.idReceitas alo do tipo....

Compartilhar este post


Link para o post
Compartilhar em outros sites

SELECT receitas.ID FROM receitas, receita_semana WHERE receitas.ID != receita_semana.Receita AND receitas.Ativo = 1 ORDER BY RAND() LIMIT 1
Bem o "receitas.ID" pelo que ele deve ser ele é um numero certo???

e o "receita_semana.Receita" não me parece um numero. por isso deve não estar funcionando... pois ja que ele pede numero ali você tem que colocar algo que represente um numero exemplo poderia ser receitas.ID != receita_semana.idReceitas alo do tipo....

<{POST_SNAPBACK}>

Nao cara...o campo receita_semana.Receita é número....eh um campo do tipo INT. Dentro dele ta o ID da tabela receitas...

 

Bom, fiz um esquema melhor detalhado para ver se alguem acha o problema:

veja aqui tudo detalhado

Fico aguardando uma luz!!!!

 

valeu

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pessoal!!Consegui resolver o problema (agradecimentos ao Kdio - #mysql - Brasnet, que solucionou meu problema)query correta para buscar os valores de receitas que nao existam em receita_semana e tenham o valor Ativo = 1

SELECT receitas.IDFROM receitas LEFT JOIN receita_semana ON receitas.ID = receita_semana.ReceitaWHERE receitas.ID NOT IN (SELECT DISTINCT ReceitaFROM receita_semana ) AND receitas.Ativo =1LIMIT 0, 30

Minha duvida foi retirada..espero que de outros que tinham a mesma duvida tambem.!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pessoal!!

 

Consegui resolver o problema (agradecimentos ao Kdio - #mysql - Brasnet, que solucionou meu problema)

 

query correta para buscar os valores de receitas que nao existam em receita_semana e tenham o valor Ativo = 1

 

SELECT receitas.ID

FROM receitas LEFT JOIN receita_semana ON receitas.ID = receita_semana.Receita

WHERE receitas.ID NOT

IN (

SELECT DISTINCT Receita

FROM receita_semana

) AND receitas.Ativo =1

LIMIT 0, 30

 

 

Minha duvida foi retirada..espero que de outros que tinham a mesma duvida tambem.!

<{POST_SNAPBACK}>

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.