Autor Zpráva
Karel Son
Profil *
Pár týdnů laboruji s MYSQL a z mnoha starších návodů na webu se stále neumím naučit a osvojit složitější výběry dat nad vícero tabulkami, mající různé počty sloupců a jeden společný primární klíč viz příklad:

clanek_id komentar ............ (celkem šest sloupců)
clanek_id obsah_clanku..... (celkem osm sloupců)
clanek_id tagy ...................... (celkem dva sloupce)


Z těchto tří tabulek potřebuji vybírat tři poslední članky a k nim patřící tagy a komentáře, s tím že komentářů může být 0 až "nekonečno" a tagů minimálně 1 max 10.

Ze všech tabulek bych v rámci jednoho řádku chtěl vybrat vše ( * ).... jak nato? Pokud mne odkážete na nějaký dobrý polopatický web návod, kde je i hodně podobných příkladů sepsaných budu rád, díky
Kajman
Profil
Nesnažte se to cpát do jednoho dotazu. Udělejte dotazy tři.

select * from obsah_clanku order by clanek_id desc limit 3;
select * from komentar where clanek_id in (42,43,44) order by clanek_id desc, komentar_id;
select * from tagy where clanek_id in (42,43,44) order by clanek_id desc, tag_id;

Dle varianty "Konstantní počet dotazů" z Srovnání dotazů do závislých tabulek
Karel Son
Profil *
já jsem myslel že v rámci každé optimalizace je to nutnost mít co "nejméně" Selectů .... to je právě to že ty články které jsem četl v některých ohledech ve mně zanechávají falešné představy....
díky

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: