Autor | Zpráva | ||
---|---|---|---|
Tomasekkk Profil * |
#1 · Zasláno: 20. 1. 2011, 20:05:07
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 |
#2 · Zasláno: 20. 1. 2011, 20:32:38 · Upravil/a: NejakyTom
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 |
#3 · Zasláno: 20. 1. 2011, 20:40:47 · Upravil/a: NejakyTom
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 * |
#4 · Zasláno: 20. 1. 2011, 20:41:59
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 * |
#5 · Zasláno: 20. 1. 2011, 20:42:34
Myslím si, že je lepší asi používat LEFT JOIN, nepletu se?
|
||
NejakyTom Profil |
#6 · Zasláno: 20. 1. 2011, 20:47:59 · Upravil/a: NejakyTom
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 * |
#7 · Zasláno: 20. 1. 2011, 22:20:04
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
|
||
Časová prodleva: 14 let
|
Toto vlákno je staré, již dlouho do něj nikdo nepřispíval.
Informace a odkazy zde uváděné už nemusejí být aktuální. Nechcete-li řešit zde uvedenou konkrétní otázku, založte si vlastní vlákno, nepište do tohoto. Vložíte-li sem nyní příspěvek, upoutáte pozornost mnoha lidí a někteří z nich si jen kvůli vám přečtou i všechny předcházející příspěvky. Předpokládáte-li, že váš text skutečně bude hodnotný, stiskněte následující tlačítko:
Běda vám, jestli to bude blábol.
0