Autor Zpráva
Tomasekkk
Profil *
Ahoj, mám k Vám dotaz, už několik let dělám SQL SELECTování docela složitě. Mám dvě tabulky a to zbozi a zbozivkategoriich. Rád bych ale znal priklad jak lze udelat to, abych mel pouze jeden select a mohl vyselectovat pomoci nej veskere informace z obou tabulek. Abych to vysvetlil:

v tabulce zbozi mam ulozene idzbozi, nazev, popis, fotografii apod. a v tabulce zbozivkategoriich mam ulozene idkategorie a idzbozi. Mam PHP script, kdy v něm pomocí GET předávám parametr idkategorie, kdy bych velice rád vyselectoval z tabulky zbozivkategoriich dle idkategorie zbozi, ktere by melo v teto kategorii byt ulozeno a zrovna z tabulky zbozi vytahnout jeho cislo, nazev, fotografii apod. vzdy jsem to delal tak, ze jsem SELECToval zbozivkategoriich a dle cisla zbozi mel udelanou funkci, ktera zvlast nacitala jeho id, potom dalsi funkce nazev apod. můžete mi prosím poradit lepší řešení? :-) Děkuju
NejakyTom
Profil
SELECT zbozi.idzbozi, zbozi.nazev, zbozi.popis, zbozi.fotografie FROM zbozi LEFT JOIN zbozivkategoriich ON zbozi.idzbozi = zbozivkategoriich.idzbozi WHERE zbozivkategoriich.idzbozi>0 AND zbozivkategoriich.idkategorie = '1';


Tohle by fungovat melo, podminku mozna lze resit i sikovneji - nevim.
NejakyTom
Profil
A nebo

SELECT zbozi.idzbozi, zbozi.nazev, zbozi.popis, zbozi.fotografie FROM zbozi, zbozivkategoriich WHERE zbozi.idzbozi = zbozivkategoriich.idzbozi AND zbozivkategoriich.idkategorie = '1'; 


bude asi lepsi
Tomasekkk
Profil *
Děkuji ti moc, podmínku jsem upravil trošku jinak, mám v DB příznak zobrazení. Už jsem se v tom zorientoval, to je přesně to co jsem potřeboval, konečně nebudu tak hltit server :-) Ještě jednou mooc děkuju
Tomasekkk
Profil *
Myslím si, že je lepší asi používat LEFT JOIN, nepletu se?
NejakyTom
Profil
Ja osobne pouzival dotaz s LEFT JOIN, nevim moc tohle nepouzivam a ani sem zadne benchmarky nedelal / nevidel.
At okomentuje nekdo kdo tohle pouziva v praxi.

Kdyz jsem to zkousel na tabulku s par zaznama tak bez LEFT JOIN to bylo rychlejsi ale to se asi ani neda brat vazne. Chtelo by to nejakou velkou db kde se pozna rozdil.
Tomasekkk
Profil *
Jojo OK. Ja prave videl vice LEFT JOIN a jak jsem psal, i kdysi jsem pouzival ale z tveho prikladu dnes jsem pochopil presne jak to funguje :-) Tak jeste jednou diky

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:

0