ugrás a tartalomhoz

Mysql több tábla - több sorral lekérdezés

iddqd · 2014. Ápr. 17. (Cs), 20.20
Sziasztok!
Egy kis segítségre lenne szükségem. ( Bocs a bugyuta címért, kissé fáradt vagyok már )

A következő az eset: 1 rekord ( ügyfél ), összes adatát kellene lekérdeznem egyszerre. Az adatok 4 táblában vannak, plusz mindegyikhez tartozik egy extra nyelv is. Tehát, 'A' tábla + 'A_nyelv', 'B' + 'B_nyelv', 'C' + 'C_nyelv', 'D' + 'D_nyelv'. 'A' tábla 1 sorához, 'B','C','D' táblák eltérő mennyiségű sora csatlakozik, több különböző mezővel. Nyelv táblák megoldhatók egy egyszerű JOIN-nal, ez nem fontos. Van valamilyen jobb-szebb-használhatóbb megoldás a külön query, illetve az eredménytömb utólagos átalakítása helyett?! Azt hiszem GROUP_CONCAT sem megoldás.
Tehát például: 'A' tábla 1 sorához kell, 'B'4x + 'C'2x + 'D'6x ( + a nyelvek )

Köszönöm a segítséget.
 
1

Érthetőbben

Pepita · 2014. Ápr. 18. (P), 09.08
Szerintem tedd fel pontosabban a kérdést, mert így nemigazán érthető, mit is szeretnél. Valahogy össze kell fűzni a táblákat, de nem derül ki, mi is van bennük és mi alapján. Az sem, hogy végeredményként egy vagy több rekordot várnál.
2

Bocs

iddqd · 2014. Ápr. 18. (P), 13.57
Tehát egy példa, 'A' táblából kellene nekem 1 db user. Userhez tartozik 'B'-táblában 4 sor, 'C' táblában 3 sor, 'D' táblában 6 sor. Tehát kellene nekem egyszerre 'A' tábla 1db sora + B-ből C-ből D-ből az összes többi hozzá. A kapcsolat közöttük a 'user_id'. Simán join-nal egy kusza tömböt kapok, rengeteg felesleges 'A' sorral, külön lekérdezve szép használható eredményt de legalább 3 adatbázis lekérés lenne.
3

Jobb pedig nemigen lesz

Pepita · 2014. Ápr. 18. (P), 17.14
Azt tudod még csinálni, hogy belső SELECT-ekkel (majdnem ugyanaz, mint a JOIN) "tömb-cellákat" állítasz elő, ha pl. stringek vannak a 'B' táblában, csinálsz belőlük egy ";"-vel elválasztott hosszabb stringet, amit aztán PHP-ból darabolsz újra. De ez nem hinném, hogy gyorsabb, mint a 3 lekérés. Itt attól függ, hogy milyen adatokkal dolgozol, hogy mi éri meg jobban.
Van erre az 'implode'-ra MySQL fv, de nem emlékszem, melyik.

SZERK.: másik kérdés, hogy maga az adatstruktúra mennyire optimális a feladathoz. Ilyesmi akkor (is) szokott előfordulni, ha maga az adatbázis-felépítés nem elég jó.
4

Köszönöm, megmérem a két

iddqd · 2014. Ápr. 23. (Sze), 10.43
Köszönöm, megmérem a két variációt. A DB felépítést nem igazán lehet ettől jobban egyszerűsíteni.
5

külön lekérdezve szép

Hidvégi Gábor · 2014. Ápr. 23. (Sze), 11.21
külön lekérdezve szép használható eredményt de legalább 3 adatbázis lekérés lenne
És akkor mi van? Így meg írhatsz algoritmust, ami összeszedi a nagy JOIN-olt eredményből az adatokat.
6

leginkább spórolás miatt

iddqd · 2014. Ápr. 23. (Sze), 17.54
leginkább spórolás miatt kérdeztem rá, hogy létezik e ettől jobb megoldás. De úgy fest marad a több lekérdezés. Köszi
7

Stored Procedure

vbence · 2014. Ápr. 24. (Cs), 10.05
Írd őket tárolt eljárásba, kis sebességet nyerni fogsz vele.