SQL - Hogyan célszerű lekérdezni több táblából, ha az összes adatra szükség van?
Hogyan lehetne lekérdezni/megjeleníteni a személyeket a barátaikkal úgy, hogy a hozzájuk tartozó összes barát megjelenjen?
Példa a két táblára:
Az első "emberek"; id, név, kor, stb.
A második "baratok"; barat_id, datum, stb.
Inner join-t nem tudom használni, mert lehet, hogy valakinek nincsen barátja/ismerőse.
Én full outer joinnal csinálnám (mysql-ben nincs ilyen, ezért 2 select Left/Right joinnal, majd union), viszont így nehezebb php-ban lekezelni.
Ti hogyan csinálnátok? Akár a lekezelést, akár a lekérdezést?
Nem értem a példa táblákat. A barátok táblában a barat_id mit jelent? Hogy kapcsol ez össze két embert?
Amúgy ez jellemzően left join, de a konkrét megoldás attól függ, mi határozza meg az emberek közti kapcsolatot.
Köszi a választ. A barát táblát valóban nem gondoltam végig. :D
Abban rontottam, hogy a projektemben egy embernek lehet több barátja, viszont az ő baráti már más baráti nem lehetnek.
javítom: user1_id, user2_id, dátum, stb.
Majd ezt kiíratni valahogy így kellene: Géza: baráti, József: baráti
De barát tábla helyett lehet akar kedvenc_szinei tábla is;
user_id, szín/megnevezés, hozzadva_datum, stb.
Így talán egyértelműbb.
Köszönöm, hogy figyelmeztettél!
#1 LEFT JOIN-nal valahogy így kellene? SELECT * FROM emberek LEFT JOIN kedvenc_szinei ON emberek.id = kedvenc_szinei.user_id?
PHP-ban így viszont nem tudom, hogyan lenne érdemes lekezelni. Ha mondjuk 2 színe van, akkor kétszer jelenik meg pl. az emberek.nev. Én úgy szeretném megjeleníteni, hogy egyszer jelenjen meg a neve (feltétel vizsgálat, dupla ciklus stb. nélkül). Ha ez lehetséges, akkor hogyan lenne célszerű?
Szia! Köszönöm a választ! Megtettem a keresést, mielőtt kiírtam a kérdést. Az a gond (amennyiben jól értem), hogy ebben a megoldásban viszont php-ben split-elni kell majd. A kérdés második felét inkább úgy értettem, hogy ezzel a LEFT JOIN-os megoldással, hogyan tudnám lekezelni?
Egyébként találtam egy ilyen megoldást: [link] Ezzel viszont az a gond, hogy PDO és nem igazán értem, a kérdést pedig tanulási szempontból írtam ki. Azt értem, hogy itt tömbbe válogatja, nem a lekérdezésen belül a rekordnak a mezőjébe. Az is nagy segítség lenne, ha valaki eltudná magyarázni a logikáját ennek a megoldásnak (mármint nem az egész kódot, csak a függvényt, ami csoportosítja).
Illetve az a gond még az általam linkelt megoldással, hogy én ajaxosan, LIMIT-el darabokban kérdezem le (mint egy "load more button"). És ezért lehetséges, hogy mondjuk az első 6-nál még különböző lesz a "kedvenc_szinei.user_id", de a következő ajax kérésnél, azaz a 7-iktől már eltér.
Azaz az általam linkelt megoldás akkor lenne hasznos, hogyha egészben kérdezném le az összes adatot.
Jó.
Tanulni könyvből, support oldalán, esetleg udemy. Erre senkinek nincs ideje, ha meg nem megy fizess meg evy hozzáértőt.
Mi nem szaladunk ilyen kérdésekkel senkihez, mellé ülűnk és utána olvasunk. Ne várd már a sült galambot, ráadásul nem is egy nehéz feladattal szórakozol nem értem miért nem megy.
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!