Autor | Zpráva | ||
---|---|---|---|
uoiuiiiii Profil * |
#1 · Zasláno: 15. 6. 2011, 18:20:53
Zdravim potreboval bych poradit jak udelat tyto 3 dotazy do jednoho:
(select * from neco where id=3 and a=1)= vypise co potrebuju + potrebuju ziskat IDcka "vedlejsich zaznamu" ktery ziskam napr. takto: select id from neco where id<3 and a=1 ORDER BY id DESC LIMIT1 -- ziskam o jedno nizsi IDcko select id from neco where id>3 and a=1 ORDER BY id DESC LIMIT1 -- ziskam o jedno vyssi IDcko ale toto mne neprijde jako idealne, tzn. poradil by nekdo jak v jednom dotazu ziskat i vedlejsi IDcka? |
||
uoiuiiiii Profil * |
#2 · Zasláno: 15. 6. 2011, 18:21:21
jaj u druhyho dotazu ma byt ASC
|
||
ShiraNai7 Profil |
#3 · Zasláno: 15. 6. 2011, 18:50:37 · Upravil/a: ShiraNai7
Zkus..
první způsob (kratší): SELECT *,(SELECT id FROM neco WHERE id < _hlavni.id AND a = _hlavni.a ORDER BY id DESC LIMIT 1) id_nizsi, (SELECT id FROM neco WHERE id > _hlavni.id AND a = _hlavni.a ORDER BY id ASC LIMIT 1) id_vyssi FROM neco _hlavni WHERE id = 3 AND a = 1; druhý způsob (delší a blbější - musí se vyplňovat hodnota "id" a "a" na více místech): SELECT _hlavni.*, _nizsi.id id_nizsi, _vyssi.id id_vyssi FROM neco _hlavni LEFT JOIN (SELECT id FROM neco WHERE id < 3 AND a = 1 ORDER BY id DESC LIMIT 1) _nizsi ON 1 LEFT JOIN (SELECT id FROM neco WHERE id > 3 AND a = 1 ORDER BY id ASC LIMIT 1) _vyssi ON 1 WHERE _hlavni.id = 3 AND _hlavni.a = 1; Oba mají stejný výsledek - řádek ze všemi sloupci z tabulky "neco" a dále sloupci "id_vyssi" a "id_nizsi". Použij raději ten první. |
||
Časová prodleva: 13 let
|
0