Autor Zpráva
http
Profil
ahoj kluci, potřeboval bych poradit
mám 4 tabulky: news, news_lang, kat_news, key_kat_news
je asi jasné co v který je...

dotaz:
SELECT DISTINCT id_news, name_news, start_news, exp_news, script_news, sort_news, status_news, key_id_lang, name_kat_news 
FROM news 
LEFT JOIN news_lang ON (news.id_news = news_lang.key_id_news) 
LEFT JOIN key_kat_news ON (news.id_news = key_kat_news.key_news) 
LEFT JOIN kat_news ON (kat_news.id_kat_news = key_kat_news.key_kat) 
WHERE key_id_lang=1 
ORDER BY sort_news DESC 
LIMIT 0, 10


musím spojit tabulky:
news = tam jsou základní data
news_lang = tam jsou texty
kat_news = vytáhnu kategorie
key_kat_news = srovnávací tabulka (news, kat_news), když je news v různých kategoriích


jenže mi to vyhazuje duplicitně aktuality a nevím jak to vyřešit :(
Díky moc Pavel
Kajman_
Profil *
Zkuste použít např. group by id_news a sloupečky, kde může být k jedné novince více hodnot, obalit třeba agregační funkcí group_concat.
http
Profil
GROUP BY pomohlo, děkuji Kajmane_

SELECT DISTINCT id_news, name_news, start_news, exp_news, script_news, sort_news, status_news, key_id_lang, name_kat_news 
FROM news 
LEFT JOIN news_lang ON (news.id_news = news_lang.key_id_news) 
LEFT JOIN key_kat_news ON (news.id_news = key_kat_news.key_news) 
LEFT JOIN kat_news ON (kat_news.id_kat_news = key_kat_news.key_kat) 
WHERE key_id_lang=1 
GROUP BY news.id_news 
ORDER BY sort_news DESC 
LIMIT 0, 10
Kajman_
Profil *
Ale bez té agregační funkce budete mít jen jednu kategorii i když jich je přiřazeno třeba 10.
http
Profil
tenhle dotaz je skládaný a je jako list news v adminu, když si chce pak redaktor vybrat články jen z kat 2, tak přidám do where key_kat=2 a funguje to skvěle...

Ale přesto, mohl by jste mi tedy napsat příklad "group_concat" s použitím mého dotazu?
koukal jsem sem: http://php.vrana.cz/vypis-dat-ze-zavislych-tabulek.php
nicméně to nějak ještě nechápu...
Díky Pavel

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: