FAQ |
Kalender |
|
![]() |
#1 | ||
|
|||
Klarade millennium-buggen
|
Citat:
. . Citat:
Är det så här du menar? Kod:
use anaxa; SELECT m.*, GROUP_CONCAT(genres.name) AS genre_field FROM movies m JOIN movie_genres mg ON mg.movie_id = m.id AND mg.genre_id IN (select id from genres) JOIN genres ON mg.genre_id = genres.id GROUP BY m.id HAVING COUNT(DISTINCT mg.genre_id) = 2 ORDER BY m.date ASC LIMIT 0, 30; Senast redigerad av Conny Westh den 2013-06-24 klockan 00:58 |
||
![]() |
![]() |
![]() |
#2 | ||
|
|||
Medlem
|
Inte riktigt.
Säg att en film har 5 olika genrer, Äventyr, Action, Komedi, Skräck och Sport. Vi kan även anta att det finns flera filmer som har liknande genrer. Nu vill jag filtrera filmerna för att få fram alla de filmer som har både Action och Skräck som genrer. Detta löser jag igenom att köra: Kod:
SELECT m.* FROM movies m JOIN movie_genres mg ON mg.movie_id = m.id AND mg.genre_id IN (1, 11) GROUP BY m.id HAVING COUNT(DISTINCT mg.genre_id) = 2 ORDER BY m.date ASC // Där 1, 11 representerar genrernas ID. Men nu kommer vi till de knepiga och själva problemet. Jag vill samtidigt hämta alla genrer som hör till en viss film. Detta gör jag för informationssyfte. Liksom att bara visa vilka genrer en specifik film har. |
||
![]() |
![]() |
Svara |
|
|