Autor Zpráva
Cup
Profil
Dobrý den,

mám ve 3 tabulkách data která mají stejné názvy některých sloupců.

a 3 dotazy na 3 tabulky ...
SELECT `id`, `datum`, `nazev` `url`, `popis`, `zobrazovat` FROM `foto`
SELECT `id`, `datum`, `nazev` `url`, `popis`, `zobrazovat` FROM `video`
SELECT `id`, `datum`, `nazev` `url`, `popis`, `zobrazovat` FROM `expedice`

Lze to nějak elegantně napsat do jednoho dotazu seřadit podle id, které je unikátní ve všech tabulkách (jedná se o čas v time()) a přidávání nebude tak časté, takže je unikátní ve všech tabulkách a dá se podle něj řadit. No a nakonec to ořezaat na 20 nejnovějších výsledků.

Díky za každou radu, odkaz na materiál nebo něco podobného :)
panther
Profil
Cup:
SELECT `id`, `datum`, `nazev` `url`, `popis`, `zobrazovat` FROM foto, video, expedice by nešlo? Nemám kde vyzkoušet.

Každopádně, mít tři stejné tabulky je podle mě nesmysl. Vložil bych vše do jedné a přidal sloupec „kategorie“ s hodnotami foto/video/expedice/... Příp. jen id_kategorie a kategorie vypsat do tabulky vedle.

Druhá věc, která mi tam moc nesedí, ukládáš id je time(), pak tam máš duplicitní sloupec datum. Datum lze snadno získat i z timestampu.
Cup
Profil
:) datum je textově, nedělám to pro sebe, ale ten známej co to tam přidává tam někdy dá ... leden - únor 2010 ... někdy 22.02.2010 ... a tak prostě, id mám kvůli tomu abych to pak mohl seřadit časově ze všech tabulek,

3 mám proto, že u každé tabulky mám ještě jiné sloupce, možná jsem to tak mohl udělat, ale mám komplet celou obsluhu už napsanou, tak se mi to nechce měnit, zkusím to nějak dostat ven dotazem, ten dotaz co si psal jsem taky zkoušel, ale nejede háže to Column 'id' in field list is ambiguous


Dík, za radu, ale musím to nějak vymyslet.
Tori
Profil
Cup:
Sloupec datum by měl být datového typu DATE nebo DATETIME. Pak by šlo snadno nastavit aktuální čas jako výchozí hodnotu pro nové řádky, a 1.známej by měl míň práce, 2. měl byste všude datum ve stejném formátu, 3. mohl byste podle toho datumu i řadit a filtrovat (na co teď asi využíváte sloupec s timestamp).
Cup
Profil
:) Ve skutečnosti sem udělal takovou chybu v základním návrhu ... že to stojí uplně k svini a pokud to budu ještě někdy upravovat, tak to budu muset celý překopat, udělat to na jednu tabulku, jak jste tu psali a celkově změnit logiku, teď když už to jede a on mi řekl kde se mu co líbí a co nelíbí a co chce ještě překopat, už vím, že jsem to udělal fakt naprd, nechal na tom 4 dny a udělal si fakt hodně problémů. Chjo, kdybych pořádně věděl co chce, tak bych to měl za 2 dny.

Jinak jsem ty data vytáhl dotazem
SELECT * FROM foto UNION
SELECT * FROM video UNION
SELECT * FROM expedice ORDER BY datum LIMIT 20

ale jak říkám, celková logika kterou sem pak musel všemožně obcházet a dělat spoustu práce navíc, je fakt k ničemu.

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

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