sliceart 0 Denunciar post Postado Novembro 25, 2010 Boas pessoal é a primeira vez que estou a tentar fazer uma busca em 2 tabelas, e depois de pesquisar e entender o código, já consegui que me pegasse resultados da BD mas não está a funcionar exactamente como pretendo... o que tenho até agora é o seguinte: SELECT Distinct destaques.*,noticias.* FROM destaques INNER JOIN noticias ON destaques.tema = noticias.tema order by rand() limit 2 Assim pega as noticias e destaques com o mesmo "tema" mas queria restringir mais a busca, queria que me pegasse só determinado "tema" acrescentei: $tema = $_GET["tema"]; SELECT Distinct destaques.*,noticias.* FROM destaques INNER JOIN noticias ON destaques.tema = noticias.tema WHERE tema = '$tema' order by rand() limit 2 mas dá erro... como posso restringir a busca à variável "$tema" Obrigado JL Compartilhar este post Link para o post Compartilhar em outros sites
sliceart 0 Denunciar post Postado Novembro 27, 2010 Boas pessoal é a primeira vez que estou a tentar fazer uma busca em 2 tabelas, e depois de pesquisar e entender o código, já consegui que me pegasse resultados da BD mas não está a funcionar exactamente como pretendo... o que tenho até agora é o seguinte: SELECT Distinct destaques.*,noticias.* FROM destaques INNER JOIN noticias ON destaques.tema = noticias.tema order by rand() limit 2 Assim pega as noticias e destaques com o mesmo "tema" mas queria restringir mais a busca, queria que me pegasse só determinado "tema" acrescentei: $tema = $_GET["tema"]; SELECT Distinct destaques.*,noticias.* FROM destaques INNER JOIN noticias ON destaques.tema = noticias.tema WHERE tema = '$tema' order by rand() limit 2 mas dá erro... como posso restringir a busca à variável "$tema" Obrigado JL Descobri que seria mais fácil utilizar UNION: SELECT * FROM noticias WHERE tema='$tema' UNION SELECT * FROM destaques WHERE tema='$tema' tenho exactamente o que queria :) mas agora como posso pegar numa variável o nome da tabela de determinado resultado, por exemplo para ver essa noticia/destaque? Pelo que li posso criar um "variavel virtual" SELECT 'tabela' as origem, * FROM noticias WHERE tema='$tema' UNION SELECT 'tabela' as origem, * FROM destaques WHERE tema='$tema' mas está a dar erro... Compartilhar este post Link para o post Compartilhar em outros sites
sliceart 0 Denunciar post Postado Novembro 27, 2010 Boas pessoal é a primeira vez que estou a tentar fazer uma busca em 2 tabelas, e depois de pesquisar e entender o código, já consegui que me pegasse resultados da BD mas não está a funcionar exactamente como pretendo... o que tenho até agora é o seguinte: SELECT Distinct destaques.*,noticias.* FROM destaques INNER JOIN noticias ON destaques.tema = noticias.tema order by rand() limit 2 Assim pega as noticias e destaques com o mesmo "tema" mas queria restringir mais a busca, queria que me pegasse só determinado "tema" acrescentei: $tema = $_GET["tema"]; SELECT Distinct destaques.*,noticias.* FROM destaques INNER JOIN noticias ON destaques.tema = noticias.tema WHERE tema = '$tema' order by rand() limit 2 mas dá erro... como posso restringir a busca à variável "$tema" Obrigado JL Descobri que seria mais fácil utilizar UNION: SELECT * FROM noticias WHERE tema='$tema' UNION SELECT * FROM destaques WHERE tema='$tema' tenho exactamente o que queria :) mas agora como posso pegar numa variável o nome da tabela de determinado resultado, por exemplo para ver essa noticia/destaque? Pelo que li posso criar um "variavel virtual" SELECT 'tabela' as origem, * FROM noticias WHERE tema='$tema' UNION SELECT 'tabela' as origem, * FROM destaques WHERE tema='$tema' mas está a dar erro... Bem parece que pergunto e respondo aki no forúm... B) Está resolvido para os que tenham a mesma dúvida fiz: SELECT *,'noticias' AS origem FROM noticias WHERE tema='$tema' UNION SELECT *,'destaques' AS origem FROM destaques WHERE tema='$tema' para colocar o nome da tabela na variável: $origem = $row["origem"]; pode ser básico, mas para quem não sabe....ajuda. Obrigado na mesma pela ajuda. Compartilhar este post Link para o post Compartilhar em outros sites