Sto provando a scrivere una procedura memorizzata per una ricerca per parola chiave. Il modo in cui abbiamo impostato il nostro DB.Come inner inner join multiple columns?
C'è un tavolo Genres
che ha Genre names
e Genre ID's
, poi c'è un tavolo Genrebridge
che ha genreID1, GenreID2, GenreID3, GenreID4, GenreID5, SongID, AlbumID
e ArtistID
.
Come posso INNER JOIN ognuno dei campi GenreID
, in modo che il Genre name
è legata al Genre Bridge
tavolo
ALTER PROCEDURE [dbo].[usp_album_search_keyword_AlbumNameANDArtistName]
(
-- Add the parameters for the stored procedure here
@albumname varchar(255),
@artistname varchar(255)
)
As
Begin
Select
Distinct a.AlbumTitle, art.ArtistName, a.AvgRatingNBR, a.OriginalPrice, a.DiscountPrice
FROM
Albums a
inner join Artists art on a.ArtistID = art.ArtistID
inner join GenreBridge gb on gb.AlbumID = a.AlbumID
inner join Genres g on g.GenreID = gb.GenreID1
inner join genres g on g.GenreID = gb.genreID2
inner join genres g on g.GenreID = gb.GenreID3
inner join genres g on g.GenreID = gb.GenreID4
inner join genres g on g.GenreID = gb.GenreID5
where a.AlbumTitle like '%' + @albumname + '%'
and art.ArtistName like '%' + @artistname + '%'
End
Questo codice funziona? E se sì, quale risultato ottieni? –
quando provo ed eseguo la procedura ottengo il seguente errore: Nome oggetto "g" non valido. modifica: credo che sia la seconda volta che dichiaro i generi come g – Parth
utilizzare diversi alias invece di 'g', come' g1', 'g2', ecc. – cha