Autor Zpráva
JaaTY
Profil *
Ahojte, mam problem z prepojenim viacerych tabuliek:
Mam tabulku USER, kde su rozne stlpce a to
id_user id_zaznam id_strom
1 2 2
dalej tabulky ZAZNAM a STROM
ktore maju id_zaznam, nazov_zaznam a id_strom, nazov_strom

Potreboval by som vypisat hodnoty nazov_zaznam a nazov_strom, ked viem, ze z tabulky USER to bude id_user = 1 napriklad
Napriklad tabulka USER vypada takto:
1 2 2
Pokial si kliknem na USERA s id_user = 1, chcem k nemu vypisat z tabuliek ZAZNAM a STROM stlpce nazov_zaznam a nazov_strom, ako by mohol vypadat dotaz na databazu Mysql. POkial pouzijem na kazdy takyto zaznam samostatny select tak to ide, ale urcite sa to da jednym selectom ale nemozem prist na to.

dufam, ze to bolo zrozumitelne :)

dakujem
MCKAY
Profil
Nejsem si jist, jak to myslíš, ale za předpokladu, že máš odkazy na uživatele, a když klikneš na uživatele s id = 1, a chceš aby se z tabulky zobrazil id_zaznam, a id_strom, tak by to mohlo vypadat následovně:

$select = "select * from user, zaznam, strom where user.id_user='{$_GET["identifikace_uzivatele"]}' and user.id_zaznam=zaznam.id_zaznam and user.id_strom=strom.id_strom";


Nebo jsem to také špatně pochopil:D

EDIT: samozřejmě si musíš přidat při kliknutí na uživatele do odkazu něco v $_GET
JaaTY
Profil *
teda presne toto som potrebovalm, som s tym troska laboroval ale stale nejake errory a az teraz som to mozno pochopil. Inak treba mi zmenit nazvy tabuliek a stlpcov, pretoze je lepsie si definovat tie nazvy viac zrozumitelnejsie, inak je to chaos, este raz diky
Joker
Profil
MCKAY:
select * from user, zaznam, strom
Nedoporučoval bych řešit to kartézským součinem, když jsou ty tabulky propojené podle jednoho sloupce.
I když ty tři tabulky budou poměrně malé, řekněme 50, 200 a 200 záznamů, select * from user, zaznam, strom bude tabulka o dvou milionech záznamů! Přitom 1 960 000 bude nesmyslných.

Lepší řešení:
SELECT * FROM user u JOIN zaznam z ON z.id=u.id_zaznam JOIN strom s ON s.id=u.id_strom WHERE u.id = $id
MCKAY
Profil
Joker
Máš pravdu, nad tím jsem se nepozastavil:-)

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: