Hirdetés

Új hozzászólás Aktív témák

  • rum-cajsz
    őstag

    Sziasztok, segítségeteket szeretném kérni.
    Hogyan lehet egy SQL lekérdezést úgy elkészíteni hogy a magja csak egyszer szerepeljen, de a From-ban szereplő tábla 6 féle lehet és ezek mindegyikére le kell futnia, úgy hogy az eredmények Union-al legyenek összefűzve.
    A magban is van két From, melyeket Join-al fűzök össze (tábla párok).
    Azaz van egy lekérdezésem amely két tábla adatait összesíti Join-al (ez működik is, változókban van a tábla pár neve), és ezt szeretném összesen 6 tábla párra automatikusan lefuttatni, az eredményeket pedig Unionnal összefűzni.
    Hogyan lehet ezt SQL-ben (MariaDB) megtenni?

    Nem ismerem a MariaDB lehetőségeit de én ezt úgy oldanám meg, hogy van egy function, amiben egy olyan kurzor van, ami a felolvasandó táblákon megy végig, a belseje pedig végrehajtja a lekérdezést a paraméterként kapott táblán, és egy record típusú OUT változóban gyűjti a dolgokat összegezve, alternatív megoldás, hogy egy külső táblába insertája a gyűjtött adatokatl. Ezt Postresben és Oracle-ben dinamikus query-nek hívják.
    De ennek a megoldásnak elég komoly limitáció vannak és nagyon nem mindegy, hogy mennyi rekordon akarsz dolgozni. Mennyi recordot vársz eredménynek.
    Ha jól olvasom, szenzorok adatait akarod összegezni, amire sokkal egyszerűbb és tartósabb megoldás a többek által javasolt triggeres módszer.
    Arra is oda kell figyelni, hogy az adatbázisban ha elszaporodnak a táblák, az tud tárolási és működési kockázat lenni. Nem tudom hány szenzorról beszélünk, de mondjuk százezres nagyságrendnél az általad elképzelt bármelyik működés használhatatlan lesz.

Új hozzászólás Aktív témák