Autor Zpráva
Akacko
Profil
mam tři tabulky:
novinky
- id
- nadpis

clanky
- id
- nadpis

komentare
- id
- datum
- novinka (pokud je komentar k novince potom novinka = novinky.id)
- clanek (pokud je komentar k clanku potom clanek = clanky.id)

A já potřebuji sestavit dotaz, ktery by mi vytáhl pět nejnovějších komentářů - sežazenych podle datum - a nadpis novinky/članku, ke kteremu tento komentář náleží.


Zkoušel jsem něco takoveho, ale na výstupu byly blbosti:

SELECT komentare.datum as kdat, novinka, clanek, novinky.id as nid, novinky.nadpis, clanky.id as cid,
clanky.nadpis FROM komentare, novinky, clanky WHERE novinka=novinky.id AND novinka!=0 || clanek=clanky.id AND clanek!=0
ORDER BY komentare.datum DESC LIMIT 0,5


Mohli byste mi poradit/pošťouchnout s timto problemem?
djlj
Profil
na výstupu byli blbosti
To je opravdu velmi konkrétní popis… Mimochodem — nevěděl jsem, že už i blbost je životná :)))

SELECT komentare.id,komentare.datum,komentare.novinka,clanky.nadpis FROM komentare INNER JOIN clanky ON komentare.clanek=clanky.id ORDER by id DESC LIMIT 5

Upraveno: jo, až teď jsem si všiml, že tam máš ty tabulky 2… Takže nejjednodušší to bude všechno naházet do jedný a přidat si tam sloupec, kterej rozliší, jestli je to novinka, nebo článek. A nemusíš řešit nějaký složitosti v SQL dotazu.
Akacko
Profil
djlj
Njn, raději jsem se zeptal, protože se mi nechtělo přepisovat tabulky.
Kajman_
Profil *
select k.id, k.datum, ifnull(n.nadpis,c.nadpis) nadpis
from komentare k
left join novinky n on k.novinka=n.id
left join clanky c on k.clanek=c.id
order by k.id desc limit 5
Akacko
Profil
Kajman_
O_o... ani nevim jak Ti poděkovat! Diky.
Toto téma je uzamčeno. Odpověď nelze zaslat.

0