Programista PHP MySQL
sulla programmazione in PHP poche parole

Sottoquery in MySQL 4.1

Pubblicato il Venerdì, 9 giugno 2006 da Luca Jarzembowski

Ho appena scoperto il potenziale di sottoquery in MySQL. E 'vero che questa possibilità è stata introdotta molto tempo fa, ma fino ad ora questo non era interessato ...

Il motivo era molto semplice - la maggior parte dei server su cui ho lavorato è stato quello di installare le versioni più vecchie. Gli amministratori hanno paura di installare le nuove versioni dei database per diverse ragioni:

  • incertezza di azione - MySQL è open source ed è spesso modificato. Il numero di versioni di prova, beta, sviluppo, ecc impedito l'attuazione di eventuali notizie sul server commerciali - sarebbe troppo frequenti "incidenti"
  • problema con il trasferimento dei dati - i nuovi motori non in grado di interpretare i file di database di versioni precedenti. Il modo più sicuro per muoversi sono i dati di esportazione e di importazione, che a sua volta è molto dispendiosa
  • alcune aziende aderiscono alla politica - cosa modificare qualcosa che funziona bene? Infatti, la mancanza di sottoquery in MySQL potrebbe "evitare di" fare il loop in PHP.

Come usare subquery? Per esempio ho sviluppato il mio problema:

Siamo alla ricerca di dati completi (titolo, contenuto, ecc.) Recente articolo su ogni sezione.

Utilizzando una versione precedente alla 4.1 problema potrebbe essere risolto in due modi:

  • Fai una query di ricerca di tutti gli articoli e li raggruppa wegług reparto. Poi abbiamo loop PHP e per ogni reparto troviamo una (più recente) articolo.
  • Fai una query di ricerca dopo la comparsa dei più recenti articoli in sezioni - SELECT `ufficio», MAX (`date`) GROUP BY `id_dzial`. Poi cercare questi articoli. Dopo un adeguato sezionato i risultati delle query precedenti, alla ricerca di dettagli di questi articoli può obsłóżyć "selezionare uno" (*)

Userò questo secondo metodo per creare una singola query con una sottoquery. Esso avrà il seguente aspetto:


SELECT * FROM `articoli` WHERE (`dipartimento`, `date`)
IN
(
SELECT «servizio», MAX (`date`) FROM `oggetti» GROUP BY «servizio»
)
ORDER BY `date` DESC

Parte di essa è sottolineato sottoquery. Mi auguro che questo codice sia comprensibile. Funziona esattamente come la soluzione (*), salvo che il trattamento è effettuato tutti i dati in MySQL - PHP ottenere una risposta concreta a porre il problema. Questo semplifica una leggibilità molto complicato e di codice dell'applicazione.

Sfortunatamente, alcune compagnie di hosting non hanno ancora sui loro server MySQL'aw versione 4.1 o successiva. Vorrei raccomandare questa azienda - il loro hosting supporta sicuramente MySQL 4.1. Lo so perché io uso lo stesso :-)

Se ti piace questa voce, per favore essa
Condividi o altri siti di social networking: Bookmark and Share
Categorie: Programmazione
Tags: , , , ,
Luca Jarzembowski Luca Jarzembowski, autore del blog - a partire dal 2006 con l'illusione che sarà ricco ... ;-) Ma ancora lavorando molto su questo. Programs , blog , e le posizioni , creando e promuovendo la loro e-business . kontakt

Voci correlate a "sottoquery in MySQL 4.1"

    Nessun post

Commenta