Példák összetett lekérdezésekre a mysql aldomainben lévő adatok lekéréséhez, ez egy speciális blog

Csak egy pár évvel ezelőtt, egy projekt, amely a munkát adatbázisok és statisztikák az építési, a fő bőség használt SQL-lekérdezések, uralja többnyire több megkeresés célzott egy előre meghatározott mintavételi és ritkán lehetett látni a másik, ami minden kétséget kizáróan lehet a "kizárólagosságnak" tulajdonítanák. Bár a komplexitás a lekérdezés, attól függően, hogy az asztalok száma, de ha csak úgy és kimeneti adatok mezők három vagy több táblából standard egyesület, a puszta összetettsége ilyen kérelem nem haladja meg a szabványnak.







Ebben a cikkben, hogy a lehető legnagyobb mértékben fog foglalkozni e kérdésekre, amelyek példái nem találtam, hogy véleményem szerint nem minősül egyszerű.

Adatok összehasonlítása két időpontra

Bár a feladatok e statisztikája ritkán teljesül, de néha szükség van rá. És az ilyen statisztikák megszerzése nem egyáltalán nehezebb, mint mások.

Két táblával dolgozunk, amelyek szerkezete az alábbiakban található:

A terméktáblázat szerkezete

A statisztikai táblázat felépítése

Az a tény, hogy az SQL nyelvi szabvány lehetővé teszi az egymásba ágyazott lekérdezések használatát, bárhol a táblázat hivatkozások használata megengedett. Itt a kifejezetten megadott táblázatok helyett, az álnevek használata miatt, az egymásba ágyazott lekérdezések táblázatait használják a rendelkezésre álló egy-egy kapcsolatra. Az egyes eredménytáblázatok eredményei az adott termékre adott megbízások számának egy adott dátumra vonatkozó adatai, amelyeket egy lekérdezés végrehajtásával nyernek, hogy az adatokat a statisztikai táblázatból a szükséges kritériumok alapján töltsék le. Más szavakkal összekapcsoljuk a statisztikai táblát magunkkal. Példa lekérdezés:







Ennek eredményeképpen a következő eredményt kaptuk:

Több érték pótlása egy másik táblázatból

A lekérdezés szükségessége nem mindennapi, de nem nagyon ritkán fordul elő. A leggyakoribb példa a szokásos hálózati játék. Ahol egy munkamenet létrejön két játékos számára. Ennek megfelelően a játékokkal kapcsolatos adatok táblázata két mezőt tartalmaz a regisztrált játékos azonosítóival. Annak érdekében, hogy az elérhető játékokkal kapcsolatos információkat jelenítsük meg, a táblázat standard kombinációjával nem tudunk adatokat szolgáltatni a játékosokról és a rendelkezésre álló játékokról. Mivel két mezőjük van bizonyos játékosok azonosítóival. De újra tudunk fordulni az asztalok álnevekhez.

A kérés bemutatása egy másik példán keresztül történik, és nem egy hálózati játék példáján. Ez azért van, hogy ne hozza létre az összes szükséges táblát. Adatokként a terméktáblázatot vesszük az "adatok összehasonlítása két időpontra" példa alapján, és létrehozunk egy újabb hiányzó replace_com táblát. amelynek szerkezete az alábbiakban látható:

Tegyük fel, hogy számítógépes szalonunk van, és bizonyos számítógép-alkotóelemek módosításait végezzük el, és az alkatrészek cseréjére irányuló műveleteket az adatbázisban rögzítjük. A replace_com táblában az alábbi mezők: sProductID és rProductID. Ahol az sProductID a cserélendő modul azonosítója, és az rProductID a csere modul azonosítója. Az elvégzett tranzakciókra vonatkozó adatok kimenetét végrehajtó lekérdezés a következő:

Eredményes adat táblázat:

Kimeneti statisztikák dátum szerinti felhalmozással

Tegyük fel, hogy van néhány raktárunk. Az áruk időről-időre érkeznek, és szeretnénk látni az áru többi részét a jelentésben szereplő napokon. Mivel az áruk elérhetőségére vonatkozó adatokat fel kell halmozni, bevezetünk egy felhasználói változót. De van egy kis "de". A lekérdezésben ugyanakkor nem használhatjuk a felhasználói változókat és az adatcsoportokat (helyesebbek lehetünk, de végül megkapjuk, nem azt, amit várunk), de a kifejezetten megadott táblázat helyett az alanykérdést használhatjuk. A táblázatban szereplő adatok dátum szerint kerülnek csoportosításra. És csak akkor, ezen adatok alapján kiszámítjuk a statisztikákat a felhalmozódással.

Az első lépés a változó beállítása és hozzárendelése nullához:

A következő lekérdezésben létrehoztuk a korábban létrehozott változót és alkalmaztuk:

Szerezd meg a példákban használt adatbázisokat.




Kapcsolódó cikkek