Uma consulta SQL em cima de outra SQL?

Delphi

31/08/2003

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


Phfdelphi

Phfdelphi

Curtidas 0

Respostas

Yankleber

Yankleber

31/08/2003

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...


GOSTEI 0
Japa

Japa

31/08/2003

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


GOSTEI 0
By Alemão

By Alemão

31/08/2003

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


GOSTEI 0
Henry Schutz

Henry Schutz

31/08/2003

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 !


GOSTEI 0
Jeancamila

Jeancamila

31/08/2003

Normalmente uso assim:

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


GOSTEI 0
By Alemão

By Alemão

31/08/2003

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


GOSTEI 0
POSTAR