Ir para conteúdo

POWERED BY:

Arquivado

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

Quati Maldito

[Resolvido] Select

Recommended Posts

Olá!

 

Pessoal, tenho uma tabela no mysql assim:

--------------------

id campo1 campo2

--------------------

1 | 54 | 0

2 | 10 | 0

3 | 12 | 10

 

No exemplo acima, temos 3 registros, preciso fazer um select q me traga todos os registros.

 

Levando em conta q quando o registro tiver o valor do campo2 já listado no select referente ao campo1, este num deve entrar no mesmo.

 

Para ficar mais claro, preciso de um select q me traga o seguinte levando em conta o exemplo acima:

 

--------------------

id campo1 campo2

--------------------

1 | 54 | 0

2 | 10 | 0

3 | 12 | 10 ESTE NÃO DEVE SER MOSTRADO, POIS VALOR DO CAMPO2 É O MESMO VALOR DO CAMPO1 EM OUTRO REGISTRO

 

Neste exemplo preciso q retorne os registros 1 e 2 ou 1 e 3

 

To usando ASP com mysql.

 

Caso não tenha ficado claro minha dúvida, posta ai q to on e respondo na sequencia.

 

Obrigado a todos.

Compartilhar este post


Link para o post
Compartilhar em outros sites

VE SE ISSO TE AJUDA BROTHER,

SELECT * FROM TABELA WHERE CAMPO1<>CAMPO2

 

Cara, isso resolveria, caso os campos fossem iguais no mesmo registro, como os valores num devem se repetir na hora de mostrar em N registros, num rola, pq tenho o mesmo valor para os dois campos, mas em registros diferentes..

 

Tava pensando num select multiplo ou sei lá, nem sei mais no q to pensando..

 

Mas muito obrigado mesmo assim.

Compartilhar este post


Link para o post
Compartilhar em outros sites

use um simples SQL SELECT

Compartilhar este post


Link para o post
Compartilhar em outros sites
SQL="SELECT * From tabela WHERE campo2 = campo1 ORDER By id

Compartilhar este post


Link para o post
Compartilhar em outros sites

SQL="SELECT * From tabela WHERE campo2 = campo1 ORDER By id

É que não é essa a idéia.

 

Eu não tenho registros no bd onde campo1 = campo2

 

Ex.: No BD está:

 

--------------------

id campo1 campo2

--------------------

1 | 54 | 0

2 | 10 | 0

3 | 12 | 10

4 | 16 | 0

5 | 11 | 10

6 | 15 | 54

7 | 19 | 0

8 | 20 | 54

9 | 22 | 10

 

Eu tenho q selecionar como abaixo:

 

--------------------

ID campo1 campo2

--------------------

1 | 54 | 0 OU 6 | 15 | 54 OU 8 | 20 | 54

2 | 10 | 0 OU 3 | 12 | 10 OU 5 | 11 | 10 OU 9 | 22 | 10

4 | 16 | 0

7 | 19 | 0

 

Ou seja, traria os registros com esses ID's :

 

1 ou 6 ou 8

E

2 ou 3 ou 5 ou 9

E

4

E

7

 

To ficando até vesgo já, vê se isso clareia

 

Valew mesmo pela ajuda cara.

Compartilhar este post


Link para o post
Compartilhar em outros sites

use a clausula HAVING

Compartilhar este post


Link para o post
Compartilhar em outros sites

use a clausula HAVING

 

Consegui resolver da seguinte forma:

 

SELECT campo1, campo2
FROM tabela
WHERE codigo_categoria = 22 and campo2 not in
    (SELECT campo1
     FROM tabela
     WHERE codigo_categoria = 22) and campo2 = 0
union
SELECT campo1, campo2
FROM tabela
WHERE codigo_categoria = 22 and campo2 not in
    (SELECT campo1
     FROM tabela
     WHERE codigo_categoria = 22) and campo2 <> 0 group by campo2

Não lembrava da utilização do having, fucei, redescobri, mas num adiantou tb.., ai continuei pesquisando e achei essa "gambi"

 

Testei no myphpadmin a função e num ficou demorada comparado a apenas um select desses da query

 

Por hora fica assim, com mais tempo penso em algo melhorado..

 

Se alguém poder dispor de um código melhor eu agradeço.

 

Obrigado a todos pela força.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Beleza amigo...

 

qualquer coisa , posta ae

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.