Mam tabulku gal:[ID, galerie(cislo), poradi(v galerii), a nejake texty].
A chcu jdnim dotazem vsechny zaznamy, ktere maju setejné "poradi" jako zazznam se zanmym ID.
Když to udelam takhe:
"SELECT *
FROM gal AS A
WHERE A.poradi = (SELECT B.poradi FROM gal AS B WHERE B.ID=20)"
Dostanu chybu. Jak to vyresit.
A potrebuju to udeltt jednim SQL dotazem. Su s rozumem v konci
Musím ti říct, že mě ten tvůj dotaz funguje. Jsou ID skutečně jedinečná?
<HTML>> FROM gal AS A
to "AS" se tam v tomhle pripade nedava ... pouze u prejmenovani sloupcu
... jinak subselekty mysql neumi (aspon stabilni verze ne), ale zas na druhou stranu, v tomhle pripade to je zbytecne - stejne dobre poslouzi i join tech dvou tabulek - a to mysql nastesti umi :-)</HTML>
jak se ten "join(t)" dělá? Je nato nejaky specielni prikaz?
<nejapny-vtip> ubalit(); </nejapny-vtip>
From: Geafer
Jo me to taky funguje v Accesu, ale ne v MySQL
From: mira
Ty by me zajimal ten joint mohl by sas o tem nejak rozsirit?
Diky vsecky m za odpovedi
no nezlob se, tolik casu na tebe nemam, navic kdyz to udelalo spousta chytrejsich prede mnou
ja se tohle ucil z knizky prof. Pokorneho - moc sympaticky pan mimochodem :)
jinak celkem dobre poslouzi i zakladni mysql manual
btw: join = spojeni (v tomhle pripade tabulek)
Je to velmi jednoduche (a ani to nezabere tolik casu vysvetlit):
join 2tabulek se udela tak, ze je proste napises do FROM a SQL z toho udela kartezsky soucin, tzn. pokud ma tabulka A 5 radku a tabulka B 7 radku, tak spojeni (join) techto dvou tabulek bude mit 5x7=35 radku, spojene podle pravidla "kazdy s kazdym". Toho se da pak vyuzit omezenim toho dotazu ve WHERE. Zbytek uz zjistis sam metodou "pokus - omyl".
Ted ten tvuj dotaz (pokud jsi ho jeste nevymyslel - prece jenom jsou to uz 2 dny):
SELECT B.* FROM gal A, gal B WHERE A.poradi = B.poradi AND A.id=20;
... jak jednoduche, ne? :)
Diky vsem mockrat. S tim joinem je to este lepsi, nez jak sem to chcel udelat ja.