Autor | Zpráva | ||
---|---|---|---|
scrand Profil * |
#1 · Zasláno: 20. 10. 2011, 13:02:50
Zdravím
Řeším jeden problém s dotazem na DB. Zajímá mě, jestli je toto možné provést nějakým poddotazem, nebo se to musí dělat dalším dodatečným dotazováním. Myslím, že by to šlo udělat přes GROUP_CONCAT, ale nějak se mi nedaří Mám tabulky Movies (id, name) 1 Matrix 2 Matrix 2 3 Matrix 3 Countries (id, name) 1 CZ 2 SK 3 EN 4 DE movies2countries (id, idmovie, idcountry) 1 1 1 2 2 2 3 1 2 4 3 3 5 2 4 6 2 3 A potřebuji z toho dostat výstup, kde budou vypsány všechny filmy a k nim země ve kterých se film natáčel ID FILM Země 1 Matrix CZ, SK 2 Matrix 2 SK, DE, EN 3 Matrix 3 EN Řešil jsem to takto, ale všechno mi to sloučí do jednoho řádku... SELECT movies.id, movies.name, GROUP_CONCAT(DISTINCT countries.name WHERE movies.id = movies2countries.idmovie ORDER BY movies2countries.timestamp ASC SEPARATOR ', ') AS countries FROM movies LEFT JOIN movies2countries ON movies.id = movies2countries.idmovie LEFT JOIN countries ON movies2countries.idcountry = countries.id WHERE movies.name LIKE '%matrix%' LIMIT 20 Děkuji za odpověď. |
||
Kajman_ Profil * |
#2 · Zasláno: 20. 10. 2011, 13:07:18
V group_concat nemá where co dělat. Dále by tam mělo být "group by movies.id, movies.name" (před limitem).
|
||
scrand Profil * |
#3 · Zasláno: 20. 10. 2011, 14:13:27
Děkuji :) funguje perfektně! Ten where tam zůstal z těch pokusů co jsem zkoušel :)
|
||
Časová prodleva: 13 let
|
0