Sottoquerie mysql

Sottoquerie mysql
Una sottoquery è una query SQL all'interno di una query più grande che è ricorsiva o una sottoquery è considerata una query interna. Al contrario, una query esterna viene definita come query che include la sottoquery. Una sottoquery MySQL può essere incorporata nelle query, tra cui selezionare, inserire, aggiornare o eliminare. Inoltre, all'interno di un altro sottoquery, può essere immersa una sottoquery. La frase sottoquery dovrebbe essere chiusa tra parentesi ovunque venga utilizzato. Ti insegneremo come e quando usare la sottoquery MySQL per comporre domande complicate e descrivere l'idea della sottoquery associata. Apri la shell della riga di comando dal desktop e scrivi la password per iniziare a utilizzarla. Premere Invio e continuare.

Sottoceria all'interno di record di singole tabelle:

Crea una tabella denominata "animali" nei dati del database ".'Aggiungi il seguente record seguente di diversi animali con proprietà diverse come visualizzato. Prendi questo record utilizzando la query seleziona come segue:

>> Seleziona * dai dati.animali;

Esempio 01:

Recuviamo i record limitati di questa tabella usando le sottoquerie. Utilizzando la query seguente, sappiamo che la sottoquery verrà eseguita per prima e la sua uscita verrà utilizzata nella query principale come input. Una sottoquery sta semplicemente recuperando l'età in cui il prezzo degli animali è 2500. L'età di un animale il cui prezzo è 2500 è 4 nella tabella. La query principale selezionerà tutti i record della tabella in cui l'età è maggiore di 4 e l'output è riportato di seguito.

>> Seleziona * dai dati.Animali in cui età> (Seleziona età dai dati.animali dove prezzo = "2500");

Esempio 02:

Usiamo la stessa tabella in situazioni diverse. In questo esempio, useremo alcune funzionalità invece di dove la clausola nella sottoquery. Abbiamo preso la media di tutti i prezzi forniti per gli animali. Il prezzo medio sarà 3189. La query principale selezionerà tutti i registri degli animali con un prezzo superiore a 3189. Otterrai l'output di seguito.

>> Seleziona * dai dati.Animali in cui prezzo> (selezionare AVG (prezzo) dai dati.animali);

Esempio 03:

Usiamo la clausola in nella query di selezione principale. Prima di tutto, la sottoquery prenderà i prezzi superiori a 2500. Successivamente, la query principale selezionerà tutti i registri degli "animali" della tabella in cui il prezzo risiede nel risultato della sottocquery.

>> Seleziona * dai dati.Animali in cui il prezzo (seleziona Prezzo dai dati.animali in cui prezzo> 2500);

Esempio 04:

Abbiamo usato la sottoquery per prendere il nome dell'animale in cui il prezzo è 7000. Dato che quell'animale è una mucca, ecco perché il nome "mucca" verrà restituito alla domanda principale. Nella query principale, tutti i record verranno recuperati dalla tabella in cui il nome dell'animale è "mucca."Dato che abbiamo solo due record per la" mucca di animali ", ecco perché abbiamo l'output di seguito.

>> Seleziona * dai dati.Animali Where Name = (Seleziona Nome dai dati.animali dove prezzo = "7000");

Sottoceria all'interno di più record di tabella:

Supponiamo che le due tabelle di seguito, "studente" e "insegnante" nel tuo database. Proviamo alcuni esempi di sottoquerie usando queste due tabelle.

>> Seleziona * dai dati.alunno;
>> Seleziona * dai dati.insegnante;

Esempio 01:

Prenderemo i dati da una tabella utilizzando la sottoquery e li useremo come input per la query principale. Ciò significa che queste due tabelle possono relazionarsi in qualche modo. Nell'esempio seguente, abbiamo usato la sottoquery per recuperare il nome dello studente dallo studente "Studente" in cui il nome dell'insegnante è "Samina."Questa query restituirà" Samina "all'insegnante di query principale".'La query principale selezionerà quindi tutti i record relativi al nome dell'insegnante' Samina.'Dato che abbiamo due record per questo nome, quindi abbiamo ottenuto questo risultato.

>> Seleziona * dai dati.Insegnante dove insegna = (Seleziona TeachName dai dati.studente dove insegna = 'samina');

Esempio 02:

Per elaborare la sottoquery in caso di tabelle diverse, prova questo esempio. Abbiamo una sottoquery che sta recuperando il nome dell'insegnante dallo studente del tavolo. Il nome dovrebbe avere "io" in qualsiasi posizione nel suo valore. Ciò significa che tutti i nomi nella colonna Teachname che hanno "io" nel loro valore saranno selezionati e restituiti alla query principale. La query principale selezionerà tutti i record dalla tabella "insegnante" in cui il nome dell'insegnante è nell'output restituito dalla sottoquery. Mentre il subquery ha restituito 4 nomi di insegnanti, ecco perché avremo una registrazione di tutti questi nomi residenti nella tabella 'insegnante.'

>> Seleziona * dai dati.Insegnante dove TeachName in (Seleziona TeachName dai dati.studente in cui insegna come '%i%');

Esempio 03:

Considera le due tabelle sotto, "ordine" e "ordine1".

>> Seleziona * dai dati.ordine;
>> Seleziona * dai dati.ordine1;

Proviamo una clausola in questo esempio per elaborare la sottoquery. La sottoquery selezionerà l '"ID" dalla tabella "ordine1", in cui lo stato di colonna "ha un valore di" non pagato."L'id" può essere più di 1. Ciò significa che più di 1 valore verrebbe restituito alla query principale per ottenere i risultati di "ordine" della tabella. In questo caso, qualsiasi "id" potrebbe essere usato. Abbiamo ottenuto l'output di seguito per questa domanda.

>> Seleziona elemento, vendite, ID dai dati.Ordina dove id = qualsiasi (selezionare ID dai dati.ordine1 dove status = 'non pagato');

Esempio 04:

Supponiamo di avere i dati seguenti nella tabella 'Order1' prima di applicare qualsiasi domanda.

>> Seleziona * dai dati.ordine1;

Applichiamo la query all'interno di una query per eliminare alcuni record dalla tabella 'Order1'. In primo luogo, la sottoquery selezionerà il valore "status" dalla tabella "ordine" in cui è il libro "."La sottoquery restituisce" pagato "come valore. Ora la query principale eliminerà le righe dalla tabella 'Order1' in cui viene pagato il valore della colonna 'stato'.'

>> Elimina dai dati.ordine1 dove status = (Seleziona stato dai dati.ordina dove item = 'libro');

Al momento del controllo, ora siamo rimasti i record seguenti nella tabella "Order1" dopo l'esecuzione della query.

>> Seleziona * dai dati.ordine1;

Conclusione:

Hai lavorato in modo efficiente con molte sottoquerie in tutti gli esempi di cui sopra. Speriamo che ora sia tutto chiaro e pulito.