Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
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.
>
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.
use um simples SQL SELECT
>
use um simples SQL SELECT
nem um exemplinho nem nada?
Vlw
SQL="SELECT * From tabela WHERE campo2 = campo1 ORDER By id
>
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.
use a clausula HAVING
>
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 = 0WHERE 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.
Beleza amigo...
qualquer coisa , posta ae
VE SE ISSO TE AJUDA BROTHER,
SELECT * FROM TABELA WHERE CAMPO1<>CAMPO2