Autor | Zpráva | ||
---|---|---|---|
svadla Profil |
#1 · Zasláno: 26. 8. 2007, 22:22:45
Preji dobry den,
mam problem s sql dotazem, prosim pomozte... tabulka1(id, cisloX) a tabulka2(id, tabulka1_id, cisloY), kde tabulka2 obsahuje 0 az N zaznamu pro kazdy zaznam z tabulka1 no a potrebuju vybrat vsechny zaznamy z tabulka1 serazene vzestupne podle nejmensiho cislaY z tabulky2, pokud ale neexistuje zaznam v tabulce2 brat cisloX a to cele pomoci jednoho sql dotazu, ten se pak bude cpat do hotove aplikace, diky vsem za radu! |
||
Alphard Profil |
#2 · Zasláno: 26. 8. 2007, 22:55:18 · Upravil/a: Alphard
select tabulka1.* from tabulka1 join tabulka2 on tabulka1.id = tabulka2.tabulka1_id order by tabulka2.cisloY
pokud ale neexistuje zaznam v tabulce2 brat cisloX tohle moc nechápu :-) a stejně bych asi moc neporadil, snad někdo jiný :-) |
||
svadla Profil |
#3 · Zasláno: 26. 8. 2007, 23:38:50
Alphard
dik, ale tohle je mi jasny, ale taky to mas spatne - chci min cisloY pro jedinecny tabulka1_id ale o co mi jde: pokud pro zaznam v tabulce1 nebude zadny v tabulce2 (jakekoliv id tabulky1 nebude obsahovat sloupec tabulka1_id tabulky2) tak se ten zaznam vubec nebude pocitat a jakoby tam nebyl... Ale v tomto pripade chci aby cisloX zastoupilo minimum z cisloY |
||
Alphard Profil |
#4 · Zasláno: 26. 8. 2007, 23:54:29
chci min cisloY pro jedinecny tabulka1_id
nevím, jestli to správně chápu co třeba seskupit s agregační funkcí min? select min(cisloY) from tabulka group by tabulka_id pokud pro zaznam v tabulce1 nebude zadny v tabulce2 (...) tak se ten zaznam vubec nebude pocitat a jakoby tam nebyl... Ale v tomto pripade chci aby cisloX zastoupilo minimum z cisloY jak již jsem psal, jak udělat zástup čísla X za číslo Y nevím ale do sady záznamů ho dostaneš pomocí left join někdo snad poradí, kdyžtak google |
||
svadla Profil |
#5 · Zasláno: 27. 8. 2007, 00:07:06
Alphard
myslim ze na tohle mi google odpoved neda... ten dotaz ma fungovat nejak takto: pro kazdy zaznam v tabulce1 1. cislo = min z tabulky2 = kde tabulka2.tabulka1_id = tabulka1.id 2. if !isset(cislo) cislo = cisloX z tabulky1 3. order by cislo ASC nebo DESC (budu potrebovat obe moznosti) if v mysql neni (nebo o nem aspon nevim), ale treba ten princip pujde nejak udelat pomoci jednoho dotazu |
||
svadla Profil |
#6 · Zasláno: 27. 8. 2007, 13:30:18
tak mam takove tuseni ze to jednim dotazem nepujde :(
|
||
Kajman_ Profil * |
#7 · Zasláno: 28. 8. 2007, 21:52:39
select ifnull(t2.cisloY,t1.cisloX) from tabulka1 t1 left join tabulka2 t2 on t1.id=t2.tabulka1_id order by 1
|
||
Časová prodleva: 17 let
|
0