Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Olá,
Gostaria de saber se há uma maneira de não repetir registros em mais de um select.
Tipo, tenho na mesma página vários 'select' buscando notícias e gostaria que as notícias não repetisse ao longo da página.
Exemplo, tenho a um slide que mostra 4 noticias em destaque e abaixo deste slide uma serie de outras noticias de categorias diversas. Não quero que uma notícia já mostrada no slide se repita dentro das outras seções.
No mesmo select sei como fazer isso. Hoje para contornar isso uso algo do tipo where id<>1 and id<>2, etc....
Obrigado.
Então, na verdade não sei se expliquei direito.
Mas seria uma consulta não repetir valores de outra.
Exemplo:
SQL:
select * from tabela
Resultado:
id | categoria
=====================
1 | a
2 | b
3 | c
4 | a
5 | a
SQL:
select * from tabela where categoria=a
Resultado:
id | categoria
=====================
1 | a
4 | a
5 | a
Aí eu queria que nesse segundo select nao repetisse os registros do primeiro. Tem como isso?
obrigado por responder.
No caso não mostraria nenhum, o melhor seria usar um subselect com NOT IN
Select * from tabela where categoria='a'
And categoria not in
(Select categoria from tabela)
Entendi. Vou tentar assim. Muito obrigado! vlw
http://stackoverflow.com/questions/3645794/sql-not-in-subquery-optimization-or-alternatives
http://dev.mysql.com/doc/refman/5.0/en/exists-and-not-exists-subqueries.html
http://dev.mysql.com/doc/refman/5.0/en/distinct-optimization.html
Use NOT IN ou NOT EXISTS ou DISTINCT conforme o caso.