Postgresql dove esiste una query

Postgresql dove esiste una query

PostgreSQL: Using Where Exist Clauso

Quando viene utilizzata una query SQL all'interno di un'altra query SQL, viene chiamata sottoquery. La domanda complicata può essere scritta facilmente dividendo una grande query in più sottoquerie. La clausola esiste viene utilizzata con una sottocquery in un'istruzione SQL. L'output di esiste dipende dai numeri di record restituiti dalla sottoquery ma non dipende dai valori dei record. Il risultato di esiste sarà vero se la sottostante associata restituisce almeno una riga. Come puoi usare esiste e non esiste la clausola in istruzioni selezionate, inserisci, aggiorna ed eliminate sono mostrate in questo tutorial utilizzando esempi diversi.

Esiste sintassi della clausola:

Seleziona Col1, Col2, Col3 ..
Da table_name1
Dove esiste (seleziona 1
DA
Table_name2
Dove col1 = table_name1.Col1);

Crea tre tabelle denominate Azienda, articoli E clienti e inserire alcuni dati. Esegui la seguente query Seleziona per mostrare il contenuto di queste tabelle.

Seleziona * dall'azienda;
Seleziona * dagli elementi;
Seleziona * dai clienti;

Esempio-1: usando la clausola esiste nella query selezionata

(a) esiste

La seguente query recupererà i record da elementi tabella basata su azienda tavolo. La sottocquery cerca tutti i record azienda tavolo dove Codice Identificativo dell'azienda Di azienda La tabella è uguale a Codice Identificativo dell'azienda Di elementi tabella e valore di telefono Il campo non è vuoto. C'è un record in azienda Tabella che non ha un numero di telefono e questo record verrà omesso dall'output.

Seleziona item_id, nome, quantità
Dagli articoli
Dove esiste (seleziona 1
Dall'azienda
Dove gli articoli.Company_id = Company.Company_id and Company.telefono");

Produzione:

Il record di LG non ha una voce del telefono nella tabella dell'azienda. Quindi non è apparso nell'output.

(b) non esiste

La clausola non esiste è opposta alla clausola. La seguente query recupererà quei record da elementi tabella quando la sottocquery restituisce falso.

Seleziona item_id, nome, quantità
Dagli articoli
Dove non esiste (seleziona 1
Dall'azienda
Dove gli articoli.Company_id = Company.Company_id and Company.sito Web_url è null);

Produzione:

Non ci sono record in azienda tavolo dove URL del sito è zero. Quindi l'output della sottoquery è falso per tutti i record e tutti i record della tabella degli elementi vengono recuperati.

Esempio-2: Utilizzo della clausola esiste nella query Inserisci

Secondo la seguente query di inserto, i dati verranno inseriti in elementi tavolo quando Codice Identificativo dell'azienda di entrambi azienda E clienti Le tabelle sono uguali.

Inserire gli articoli
(Codice Identificativo dell'azienda)
Seleziona Company_id
Dai clienti
Dove esiste (seleziona 1
Dall'azienda, clienti
Dove i clienti.Company_id = Company.Codice Identificativo dell'azienda);

Produzione:

Ci sono tre voci per Codice Identificativo dell'azienda Nella tabella dei clienti con i valori sono 1 E 2. Quindi la sottoquery tornerà vero per tre volte e verranno inseriti tre record.

Esegui la query Seleziona per verificare il contenuto della tabella degli elementi.

Esempio-3: Utilizzo della clausola esiste nella query di aggiornamento

La seguente query aggiornerà i record di elementi tavolo dove Codice Identificativo dell'azienda è 1 e la sottoquery restituisce vero.

Aggiorna le voci
Set name = "Nokia"
Dove compagnia_id = 1 ed esiste (seleziona 1
Dagli articoli
Dove name = "non assegna");

Produzione:

Qui, la sottoquery tornerà vero per tre volte e Codice Identificativo dell'azienda è 1 per tre record. Tre record verranno aggiornati dopo aver eseguito la query di aggiornamento.

Esegui la query Seleziona per verificare il contenuto della tabella degli elementi.

Esempio-4: Utilizzo della clausola esiste nella query Elimina

La seguente query eliminerà quei record di elementi tavolo dove Codice Identificativo dell'azienda è 1 e la sottoquery restituisce vero.

Elimina dagli articoli
Dove compagnia_id = 1 ed esiste (seleziona 1
Dagli articoli
Dove name = "non assegna");

Produzione:

Ci sono tre record con il valore 1 di Codice Identificativo dell'azienda E un record ha un valore del nome 'Non assegnare'. Quindi, la condizione sarà vera per tre volte ed elimina tre record da elementi tavolo.

Esegui la query Seleziona per verificare il contenuto della tabella degli elementi.

Spero che tu abbia una chiara idea di usare esiste la clausola nella query SQL dopo aver letto questo tutorial.