Autor | Zpráva | ||
---|---|---|---|
nowis Profil * |
#1 · Zasláno: 2. 7. 2012, 13:59:41
Zdravím a prosím o pomoc s dotazem na který jsem krátký
Mám 1 databázi lidí, kteří mají různé funkce, pro zjednodušení řekněme technik a prodejce. Tito lidé mají vždy svou unikátní zkratku (iniciály) Druhá tabulka obsahuje zakázky. V této databázi jsou pracovníci uvedení pod svým celým jménem, tedy celé jméno je společný identifikátor pro obě tabulky. Jak bych měl sestavit dotaz, který mi k tabulce zakázek přiřadí správně zkratky z databáze pracovníků? S jedním sloupcem si vím rady, ale nevím, jak to rozdělit na 2 sloupce (zkratka_technik, a zkratka_prodejce) Možná je to maličkost, ale já fakt nevím jak na to. Dotaz pro přidání zkratek k prodejcům mám takto: SELECT zakazky.*, pracovnici.zkratka as zkratka_prodejce FROM zakazky, pracovnici WHERE zakazky.prodejce = CONCAT(users.Prijmeni,' ', users.Jmeno) Dík |
||
juriad Profil |
#2 · Zasláno: 2. 7. 2012, 14:17:35
SELECT z.*, p.zkratka as zkratka_prodejce, t.zkratka as zkratka_technika FROM zakazky as z JOIN pracovnici as p ON (z.prodejce = p.jmeno) JOIN pracovnici as t ON (z.technik = t.jmeno) můžeš používat aliasy u názvů tabulek |
||
nowis Profil * |
#3 · Zasláno: 2. 7. 2012, 14:49:12
juriad:
jo, tak to funguje. Ale fakt jsem na to krátký, protože tomu dotazu nerozumím. Ale já to nastuduju :-) ta podmínka je divná, protože ty tabulky jsou takhle blbě navržené, ale výkon v tuto chvíli není problém a předělávat to jen pro pocit asi nemá smysl. Díky |
||
juriad Profil |
klidně se to může přepsat do starší syntaxe, kterou znáš (oba dotazy jsou ekvivalentní):
SELECT ... FROM zakazky as z, pracovnici as p, pracovnici as t WHERE z.prodejce = p.jmeno AND z.technik = t.jmeno AND p.velikost_bot = t.velikost_bot , tak už nebude jasné na první pohled, co podmínka znamená a proč tam je (filtruje, nebo se stará o nějakou závislost)
novější způsob umožňuje odlišit podmínky na filtraci (chci jen nějaké záznamy) od spojovacích podmínek (připoj mi další tabulku, tak aby platilo ...) |
||
nowis Profil * |
#5 · Zasláno: 2. 7. 2012, 15:19:00
jj, dík, už to trošku chápu
|
||
Časová prodleva: 12 let
|
0