Random problem

Tags:    databaser

Har den her filmdatabase som skal læse en random filmtitel ud men pt. får jeg også en random filmgenre ud nogen der kan fortælle mig hvor jeg har skrevet forkert?

SELECT TOP (1)
Movie.MovieID, Movie.MovieNavn,Movie.GenreID, Movie.MovieGenreID,
Genre.GenreNavn, MovieGenreRelation.MovieGenreID AS Expr1
FROM Movie
INNER JOIN
MovieGenreRelation ON Movie.MovieID = MovieGenreRelation.MovieID CROSS JOIN
Genre
ORDER BY NEWID()



Øøøøhhh en CROSS JOIN ??? skal det ikke være en inner join på et genre id og et id på filmen?



Er kommet frem til dette nu siden jeg skrev spørgsmålet, men får desværre en error så ved jo ikke om dette vil fungere :s
Fold kodeboks ind/udKode 


Msg 102, Level 15, State 1, Line 2
Incorrect syntax near '.'.


Er rimelig ny til sql så måske det bare er en simple fejl jeg har lavet?



din sidste SQL er ret mystisk har din Movie tabel en GenreID og MovieGenreID kollonner?



MovieGenre er relationen mellem Movie og genre tabelleren :)
Og ja det er muligvis noget mystisk noget,men er heller ikke sikker på det er korrekt..



næh det ikke mystisk hvis det er sandt men hvad er MovieGenreRelation tabellen så til?

Enten har du
Fold kodeboks ind/udKode 

Ved første exsemple skal primær nøglen fra Genre være fremmed nøgle i Movie.

Ved andet eksemple skal Primær nøglerne fra Movie og Genre være Primær nøgle i MovieGenreRelation.



Indlæg senest redigeret d. 25.09.2008 15:45 af Bruger #5620
Relationstabllen er der at den simple årsag at en film jo naturligt nok kan have flere end en genre...
Hvis du ser på det første eksempel jeg kom med så virker det næsten, MEN det læser kun 1 genre ud og der er 3 i tabellen som høre til den pågældende film... og når den så læser den ene ud så kommer der en randomgenre ud som overhovedet ikke er med i relationstabellen håber virker du forstår det her jeg skriver :)



ville foreslå at du selectede filmen også brugte den selectede film til at select fra MovieGenre left joined med Genre:
kender ikke denne sql så ikke sikker på det korrekt
Select TOP(1) * FROM Movie WHERE ORDER BY NEWID()

Select Genre.GenreId,Genre.GenreNavn FROM MovieGenreRelation LEFT JOIN Genre ON MovieGenreRelation.GenreId=Genre.GenreId WHERE MovieGenreRelation.MovieId="FUNDET MOVIE ID FRA FØRSTE SQL"



t