LEFT JOIN-nal nem kiértékelhető eredményt kapok
Sziasztok!
A bejelentkezést akarom egyszerűbbé tenni azzal, hogy a táblákat LEFT JOIN-nal kapcsolom össze, de végül nem olyan eredményt ad ki, amit használni tudnék.
Van egy tábla, amiben a regisztrált adatok vannak eltárolva.
Egy másik tábla tárolja a kedvenceket, minden sor egy kedvenc, megadva, hogy mi az, és kihez tartozik.
A harmadik tábla a komment, mihez írták, és ki írta.
És mondjuk a negyedik egy adminjog, ahol meg van adva, hogy ki az és milyen jogosultsága van.
Eddig úgy hajtottam végre a bejelentkezést, hogy kiolvastam minden értéket az első táblából.
Aztán, ha létezik a $_SESSION['profil_id'], akkor megnézem, van-e admin joga, aztán hogy tartozik-e hozzá kedvenc, ha igen, azokat tömbbe írom, majd tartozik-e hozzá komment, és azokat is tömbbe írom.
De ha egy LEFT JOIN-nal:Attól eltekintve, hogy használhatom a USING-ot, mert a PROFILE_ID-nek mindenhol ugyanaz a neve, teljesen kiértékelhetetlen eredményt kapok, ha pl. 5 kedvencem és 3 kommentem van. Kiad 15 sort és abból nem tudok normálisan tömbbe írni.
Ez valószínűleg az én amatőrségem, de hogy tudok ebből olyan eredményt kapni, mondjuk a kiolvasásnál a tömbbe írásnál, hogy ne 15 soros tömbjeim legyenek, hanem a kedvencek 5 sor legyen, a komment meg 3.
Köszi
■ A bejelentkezést akarom egyszerűbbé tenni azzal, hogy a táblákat LEFT JOIN-nal kapcsolom össze, de végül nem olyan eredményt ad ki, amit használni tudnék.
Van egy tábla, amiben a regisztrált adatok vannak eltárolva.
Egy másik tábla tárolja a kedvenceket, minden sor egy kedvenc, megadva, hogy mi az, és kihez tartozik.
A harmadik tábla a komment, mihez írták, és ki írta.
És mondjuk a negyedik egy adminjog, ahol meg van adva, hogy ki az és milyen jogosultsága van.
Eddig úgy hajtottam végre a bejelentkezést, hogy kiolvastam minden értéket az első táblából.
Aztán, ha létezik a $_SESSION['profil_id'], akkor megnézem, van-e admin joga, aztán hogy tartozik-e hozzá kedvenc, ha igen, azokat tömbbe írom, majd tartozik-e hozzá komment, és azokat is tömbbe írom.
De ha egy LEFT JOIN-nal:
SELECT *
FROM ((profil
LEFT JOIN admin ON profil.PROFILE_ID = admin.PROFILE_ID)
LEFT JOIN kedvenc ON profil.PROFILE_ID = kedvenc.PROFILE_ID)
LEFT JOIN komment ON profil.PROFILE_ID = komment.PROFILE_ID
WHERE ...
Ez valószínűleg az én amatőrségem, de hogy tudok ebből olyan eredményt kapni, mondjuk a kiolvasásnál a tömbbe írásnál, hogy ne 15 soros tömbjeim legyenek, hanem a kedvencek 5 sor legyen, a komment meg 3.
Köszi
LEFT JOIN
Amit meg szeretnél valósítani, az ebben a formában nem lesz jó. A nem összetartozó adatokat ne akard egy lekérdezésben letudni, mert a rengeteg kombinált sor miatt lassabb lesz és több memóriát is fog használni.
köszi
Amúgy ugyanennél a próbálkozásomnál volt egy másik problémám.
Minden olyan embernél, aki nem admin, belépéskor lenullázza a PROFILE_ID-t.
Ugyanis kiolvas egy PROFILE_ID=5-öt a profil tömbből és kiolvas egy PROFILE_ID=NULL-t az admin táblából, mert nincs benne.
Kiolvasáskor pedig (mivel kétszer is szerepel mezőnévként, de két más értékkel) valamiért a NULL-t veszi figyelembe, és a session-ben a profile_id üres lesz. Erre van valami ötleted?
Mezők
igaz