Autor Zpráva
Pavel015
Profil
Dobrý den.

Prosím o radu ohledně SQL příkazu.
.
Mám 3 tabulky, které jsou znázorněny na obrázku. Potřebuji vytvořit něco jako "zeď", kde by příkaz vypsal postupně uložená data ze tří tabulek a seřadil je od nejnovětšího po nejstarší.

Mohl byste mi, nějak, prosím, poradit?
Sedím nad tím 3 hodiny a furt jsem na to nepřišel...
Díky!
tiso
Profil
Ako má vyzerať výstup?
Pavel015
Profil
tiso:
Prostě výpis ze všech tabulek, ale řazeno dle toho, kdy to bylo přidáno.
MartinP_
Profil *
Myslíš vypsat vše do jedné tabulky? Nebo do 3 různých?
tiso
Profil
Tak použi UNION
Pavel015
Profil
MartinP:
Vypsat všechno ze 3 tabulek a seřadit podle tří časů a času aktuálního. Jedním příkazem.
MartinP_
Profil *
Něco takového:

SELECT * FROM (SELECT id, jmeno as data, cas_vlozeni FROM users UNION SELECT id, nazev as data, cas_vlozeni FROM aktuality UNION SELECT id, text as data, cas_vlozeni FROM zaznamy) ORDER BY cas_vlozeni DESC



Možná to někam bude chtít přidat zpětné apostrofy (`)
Pavel015
Profil
MartinP:
#1248 - Every derived table must have its own alias
MartinP_
Profil *
SELECT * FROM (SELECT id, jmeno as data, cas_vlozeni FROM users UNION SELECT id, nazev as data, cas_vlozeni FROM aktuality UNION SELECT id, `text` as data, cas_vlozeni FROM zaznamy) as vsechno ORDER BY vsechno.cas_vlozeni DESC
Dusann
Profil
Pavel015:

Mám 3 tabulky, které jsou znázorněny na obrázku. Potřebuji vytvořit něco jako "zeď", kde by příkaz vypsal postupně uložená data ze tří tabulek a seřadil je od nejnovětšího po nejstarší.

Prostě výpis ze všech tabulek, ale řazeno dle toho, kdy to bylo přidáno

Vypsat všechno ze 3 tabulek a seřadit podle tří časů a času aktuálního. Jedním příkazem.


Z tvojho zadania mi nie je jasné, ako presne maju byť dáta zoskupené vo výslednej tabuľke.

Ak chceš vo výslednej tabuľke najprv dáta radiť podľa toho do akej tabuľky patria a až potom radiť podľa času, tak použi:

(SELECT id, jmeno as `data`, cas_vlozeni, 1 AS `tabulka` FROM users)
UNION
(SELECT *, 2  FROM aktuality)
UNION
(SELECT *, 3  FROM zaznamy)

ORDER BY tabulka, cas_vlozeni DESC;

Ak ti na zoskupení dát podľa tabuliek users, aktuality, zaznamy nezáleží, použi:

(SELECT id, jmeno as `data`, cas_vlozeni FROM users)
UNION
(SELECT *,  FROM zaznamy)
UNION
(SELECT *,  FROM zaznamy)

ORDER BY cas_vlozeni DESC;

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: