Ir para conteúdo

POWERED BY:

Arquivado

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

Thiago K.

[Resolvido] Pegar o primeiro ID

Recommended Posts

Pessoal, tenho uma tabela de produtos e uma tabela de categorias. Queria pegar o primeiro ID cadastrado na tabela de produtos para cada categoria, é possível?

 

A tabela de produtos fica mais ou menos assim:

 

ID | IDcategoria | produto

1....1.................produto1

2....1.................produto2

3....1.................produto3

4....2.................produto4

5....2.................produto4

6....2.................produto4

 

Quero pegar o primeiro ID cadastrado para cada categoria. No caso o ID 1 e o ID 4.

 

Obrigado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

limit 1 é uma saida, mas acho que nao adianta pro seu caso - as vezes pra azer confirmação de conteudo eu uso isso

 

 

 

 

pra você talvez, seria criar um

 

if cont=0 then

 

ultimoID = rs("id")

 

end if

 

pronto, dentro do seu loop você pegará o 1º id

Compartilhar este post


Link para o post
Compartilhar em outros sites

Fazer isso via "if" geraria um monte de raw gasta sem nescessidade, o mais viavel seria você jogar essa responsabilidade direto via Banco de Dados.

 

Exemplo;

SQL = "select distinct(campos,campos) from tabela where X = Y order by campos,campos.

 

Se eu entndi certo, acho que dessa forma resolveria o seu problema, mas se não resolver um subquery resolve :P

 

exemplo:

 

select distinct(id) from tabela where IDcategoria = (select IDcategoria from tabela order by IDcategoria asc)

 

Acho que com esses dois exemplos você possa adaptar para sua realidade.

 

PS: Não sei tudo, logo posso estar errado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

trocar um if por uma consulta sql?

isso gasta recurso sem a minima necessidade

 

 

você deu uma dica usando array

array(contador)

no final ele manda um array(0) e retorna o primeiro

 

na teoria acho que funciona

Compartilhar este post


Link para o post
Compartilhar em outros sites

Se você ja tem os dados em DB, vai ser obrigatorio gerar o sql para consulta, logo eria mais economico para o seu sistema ter o retorno de sua conulta direto no SQL, pensando em um unico registro o array seria interessante, mas se você tiver com um DB que vai crescer podendo em algum tempo ter uma quantidade grande recursos o SQL é sem sombra de duvidas mais viavel que criar array para comparação.

 

Vamos lembrar que BANCO DE DADOS é feito para consultas e peso, array não.

Compartilhar este post


Link para o post
Compartilhar em outros sites

você pode usar a cláusula TOP

 

A cláusula TOP é usada para especificar o número de registros para retornar.

 

SELECT TOP 1 * FROM tbl ORDER BY DateEntered DESC 

 

se for MySQL use o Limit

Compartilhar este post


Link para o post
Compartilhar em outros sites

Se você ja tem os dados em DB, vai ser obrigatorio gerar o sql para consulta, logo eria mais economico para o seu sistema ter o retorno de sua conulta direto no SQL, pensando em um unico registro o array seria interessante, mas se você tiver com um DB que vai crescer podendo em algum tempo ter uma quantidade grande recursos o SQL é sem sombra de duvidas mais viavel que criar array para comparação.

 

Vamos lembrar que BANCO DE DADOS é feito para consultas e peso, array não.

 

entram outros fatores no meio do meu ponto de vista e do seu

 

 

tudo implica na qtd de registro, se eue pode ou nao usar um distinct no sql e por ai vai

 

array se sai bem em uma rotina normal, mas if é a melhor opção, afinal, ele serve pra isso

Compartilhar este post


Link para o post
Compartilhar em outros sites

Obrigado, consegui resolver.

 

Não sei se foi a melhor forma, mas funcionou para o que eu precisava. Usei o FIRST(ID)

 

Podem fechar o tópico.

Compartilhar este post


Link para o post
Compartilhar em outros sites

beleza...

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.