GARANTIR DESCONTO

Fórum Uma consulta SQL em cima de outra SQL? #178696

31/08/2003

0

Como faço para fazer uma consulta SQL em cima de outra consulta SQL?


Phfdelphi

Phfdelphi

Responder

Posts

31/08/2003

Yankleber

Olá,

Acredito que você esteja querendo fazer pesquisas aninhadas, e isso é perfeitamente possível em SQL.

Por, exemplo, para pesquisar em uma tabela ´clientes´, todos os nomes que começam com a letra A, você faria:

SELECT * FROM clientes WHERE nome LIKE ´A¬´


Suponha que você queira pesquisar dentro do resultado (todos os clientes cujo nome comecem com a letra A), aqueles cujo sobrenome comecem com a letra B). Você poderia fazer:

SELECT * FROM (SELECT * FROM clientes WHERE nome LIKE ´A¬´) WHERE sobrenome LIKE ´B¬´


Ou seja, para aninhar pesquisas, depois do SELECT * FROM, ao invés de colocar o nome da tabela a ser pesquisada, basta colocar a outra pesquisa entre parênteses.

Obs.: Antes que alguém por aí possa cair da cadeira, eu explico: é claro que poderíamos ter feito as duas comparações (nome e sonbrenome) ao mesmo tempo em uma só pesquisa usando AND, contudo usei o exemplo acima apenas para explicar de maneira fácil ao nosso colega como aninhar pesquisas.

Espero ter ajudado...


Responder

Gostei + 0

31/08/2003

Japa

So uma perguntinha, fazer uma pequisa assim deixa mais rapida a consulta??? :?:


Responder

Gostei + 0

01/09/2003

By Alemão

Ola,

Desse jeito a pesquisa fica mais rapida por ela é feita num SELECT só...

senão vc teria que executar o Primeiro SELECT e em cima desse resultado fazer um SELECT pra cada um dos registro encontrados no SELECT anterior....

teu banco pesaria muito...

Alemão


Responder

Gostei + 0

10/09/2003

Henry Schutz

Alemão,

Essas subqueries funcionam no BDE?
tenho tentado utiliza-las, e sempre me dá erro informando o uso incorreto do ´select´, no caso o segundo select

estou começando a achar q há alguma limitação do BDE quanto a isso

agradeço qq ajuda !


abraço !


Responder

Gostei + 0

11/09/2003

Jeancamila

Normalmente uso assim:

select c.codcli from cliente c where c.codcli in (select a.codcli from vendas a)


Responder

Gostei + 0

11/09/2003

By Alemão

olha cara,

não conheco as limitações do BDE. Eu trabalho com SQL Server e MySQL com mais de 3 milhões de registros por tabela e dessa maneira funciona perfeitamente e rápido.....

não sei te dizer o q acontece no BDE......

tente migrar suas aplicações para MySQL que é free...... e é muito bom....

dúvidas pode me contatar....

Alemão


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar