Como usar consultas sql aninhados que são um teste de existência
A consulta retorna dados de todas as linhas da tabela SQL que satisfaçam as condições da consulta. Às vezes, muitas linhas são returned- às vezes apenas uma volta. Às vezes, nenhuma das linhas na tabela satisfazer as condições, e há linhas são retornadas.
Conteúdo
Video: VB.NET Database Tutorial - Query a Microsoft SQL Database To A DataGridView
Você pode usar o EXISTE e NÃO EXISTE predicados para introduzir uma subconsulta. Essa estrutura informa se quaisquer linhas na tabela localizada na subconsulta de A PARTIR DE cláusula de cumprir as condições em sua ONDE cláusula.
EXISTE e NÃO EXISTE subconsultas são exemplos de subconsultas correlacionadas.
UMA subconsulta correlacionada primeiro encontra a mesa e linha especificada pela instrução delimitador e, em seguida, executa a subconsulta na linha na tabela de subconsulta que se correlaciona com a linha atual da tabela da instrução de inclusão.
A subconsulta quer retorna uma ou mais linhas ou ele retorna nenhum. Se ela retorna pelo menos uma linha, a EXISTE predicado for bem sucedida, ea declaração encerrando realiza sua ação. Nas mesmas condições, o NÃO EXISTE predicado falha, ea declaração delimitador não executa sua ação.
Depois de uma linha da tabela de declaração delimitador é processado, a mesma operação é realizada na próxima linha. Esta ação é repetida até que cada linha na tabela de declaração de inclusão foi processado.
EXISTE
Suponha que você é um vendedor de Zetec Corporation e você quer chamar o seu povo de contato primário para todas as organizações de clientes da Zetec na Califórnia. Tente a seguinte consulta:
Video: 14 - Teste INDEX (PostgreSQL).avi
SELECT * DE CONTACTWHERE existe (SELECT * FROM CUSTOMERWHERE CustState = `CA`AND CONTACT.CustID = CUSTOMER.CustID) -
Observe a referência a CONTACT.CustID, que faz referência a uma coluna de consulta externa e comparando-a com uma outra coluna, CUSTOMER.CustID, a partir da consulta interna. Para cada linha candidata da consulta externa, você avaliar a consulta interna, usando o CustID valor dos atuais CONTATO linha da consulta externa no ONDE cláusula da consulta interna.
Eis o que acontece:
o CustID coluna liga tabela de contato para a tabela CUSTOMER.
SQL olha para o primeiro registro na tabela CONTACT, encontra a linha na tabela do cliente que tem o mesmo CustID, e verifica essa linha de CustState campo.
E se CUSTOMER.CustState = ‘CA’, o atual CONTATO linha é adicionada à tabela de resultados.
Nas próximas CONTATO registro é então processada da mesma forma, e assim por diante, até que a tabela de contatos inteira foi processada.
Porque os especifica de consulta SELECT * do contato, todos os campos da tabela do contato são retornados, incluindo o nome do contato e número de telefone.
NÃO EXISTE
O vendedor Zetec quer saber os nomes e números das pessoas de contato de todos os clientes na Califórnia. Imagine que um segundo vendedor é responsável por todos os Estados Unidos, exceto Califórnia. Ela pode recuperar o seu povo de contato usando NÃO EXISTE em uma consulta semelhante à anterior:
SELECT * DE CONTACTWHERE NÃO EXISTE (SELECT * FROM CUSTOMERWHERE CustState = `CA`AND CONTACT.CustID = CUSTOMER.CustID) -
Cada linha em contato para que a subconsulta não retorna uma linha é adicionada à tabela de resultados.