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.