Üdv! Sajnos hiába googlézek magyarul/Angolul nem találtam működő megoldást a kérdésemre.
Egy összetettebb több táblás lekérdezést építgetek, de sajnos az utolsó komponensnél(táblánál) rájöttem, hogy nem tudom hogyan kell megfogalmazni SQL-ben, amit szeretnék tőle.
A kérdésemet egy egyszerű egy-táblás lekérdezés formájában teszem fel, a konkrét problémát mutatva, a több táblás változatát én akarom befejezni. :p
Mivel hajlamos vagyok hosszan részletezni a dolgokat ( elkerülve a félreértéseket) jól látható pontokba soroltam a kérdéseimet, így nem veszik el senki a rossz fogalom-használatom miatt felmerülő egyéb "talán" kérdésnek tűnő dolgokban.
=======================
# KÉRDÉS 1: HOGYAN RENDEZHETEM A LEKÉRDEZÉS TÖBB SOROS EREDMÉNYÉT EGYETLEN SORBA? (ezzel elkerülve a redundáns megjelenést)
=======================
BŐVEBBEN:
A "LISTA" táblában az "XtablaID" többször szerepel és minden sorban van egy-egy új adat, pl:
listaID XtablaID ADAT
===== ===== =====
0 | 0 | valami1
1 | 0 | ...valami2
2 | 1 | ezMásikKomponeshezTartozóAdat...
A lekérdezés SELECT * FROM lista WHERE XtablaID=0
Egymás alá kiadja a "valami1", és "...valami2" adatot, viszont az én fő lekérdezésemben egyetlen sorban kellene megjelenítenem ennek a mellék-táblának az X mennyiségű sorában található adatokat ( amennyi épp az xtablaID-hoz hozzá van rendelve.) akár vesszőkkel elválasztva.
(a redundancia elkerülése végett van erre szükségem )
!!! HA
SELECT * FROM lista WHERE XtablaID=0 GROUP BY XtablaID
Tehát Group By-al összevonom a a sorokat, akkor csak az első vagy X. elemet jeleníti meg, nekem viszont minden sor elemére szükségem lenne.
Természetesen a fő és egyéb mellék táblák adataival együtt akarom majd megjelentetni, de azt már én szeretném megcsinálni. E-nélkül viszont azt sem tudom befejezni.
=======================
# KÉRDÉS 2: SZERINTEM A TÖBB LEKÉRDEZÉS TÖBB ERŐFORRÁS IS, MINT EGY NAGY LEKÉRÉS A SZERVERTŐL, JÓL GONDOLOM? VAGY JOBB, HA KOMPLEXEBB LEKÉRDEZÉSEKET INKÁBB KÜLÖN VÉGEZTETEM EL?
=======================
BŐVEBBEN:
Van értelme szórakozni a lista tábla elemeinek egy sorba válogatásával, vagy egyszerűbb, ha kettő lekérdezést indítok?
Én úgy gondolnám, hogy erőforrás hatékonyabb lennék egy lekérdezés küldésével a szerver felé.
=======================
# EXTRA KÉRDÉS 3: A LEKÉRDEZÉSEM MEGFELEL A "FROM TABLA1, TABLA2, TABLA3" FORMÁTUMBAN?
=======================
BŐVEBBEN:
Mivel a több táblámnak (az egyes táblák elsődleges kulcsait leszámítva) minden mezőre szükségem van, így a fő lekérdezésem, valahogy így néz ki:
SELECT * FROM tabla1 tabla2 tabla3 WHERE xtablaID=0 AND (... egyéb tábla relációk ...stb)
Ha jól értelmeztem, a (Inner/Left/Right)JOIN-ok nem erre a feladatra vannak kitalálva, nem azokat kell használnom.
FORRÁS: http://www.sze.hu/~szorenyi/sz03/htm/doc/OUTJOIN.htm
=======================
# EXTRA EXTRA KÉRDÉS: DESKTOP ALKALMAZÁS ESETÉN VAN SPECIÁLIS ADATBÁZI ESZKÖZ?
=======================
BŐVEBBEN:
Jelenleg Webezek, de a későbbiekben programozni is szeretnék. A példa kedvéért, egy offline játék esetén (ami mondjuk C++ ) egyszerűen egy Array-ben fogom letárolni a játékos életét, sebzését, védelmi pontjait, és a táskájában szereplő tárgyainak neveit/db számát?
Vagy létezik kliens használatra valamilyen framework segítségével összedrótozható lokális adatbázis?
Ugyan ez, online játék esetén, hasonlóan a böngésző alapú játékokhoz, szimplán egy valamilyen sql adatbázisra épül?
A segítséget előre is nagyon szépen köszönöm! :)