我在創建查詢時遇到了麻煩,這在我的腦海中應該很簡單。SQL Server - 從兩個表獲取信息
我有兩個表(tblReviews
和tblRating
)。這兩個表格都有venueId
和userId
。
我想創建一個查詢,將使用相同的venueId
和userId
返回審閱和評級。這是可能的,或者我應該使用兩個查詢?
在此先感謝
我在創建查詢時遇到了麻煩,這在我的腦海中應該很簡單。SQL Server - 從兩個表獲取信息
我有兩個表(tblReviews
和tblRating
)。這兩個表格都有venueId
和userId
。
我想創建一個查詢,將使用相同的venueId
和userId
返回審閱和評級。這是可能的,或者我應該使用兩個查詢?
在此先感謝
可以
SELECT *
FROM tblReviews AS rev INNER JOIN
tblRating AS rat ON rev.venueid = rat.venueid AND rev.userid = rat.userid
該查詢返回從每個表中的匹配的行。如果您想要第一個,第二個或兩個表中的所有記錄,則可以使用外部聯接(LEFT OUTER JOIN,RIGHT OUTER JOIN,還有FULL OUTER JOIN)。
SELECT Rev.column_name, Rat.column_name
FROM dbo.tblReview AS Rev
FULL OUTER JOIN dbo.tblRating AS Rat
ON Rev.VenueId = Rat.VenueId
AND Rev.UserId = Rat.UserId;
如果你希望所有的特定用戶:
SELECT Rev.column_name, Rat.column_name
FROM dbo.tblReview AS Rev
FULL OUTER JOIN dbo.tblRating AS Rat
ON Rev.VenueId = Rat.VenueId
AND Rev.UserId = Rat.UserId
WHERE (Rev.UserId = @UserId OR Rat.UserId = @UserId);
如果你希望所有的特定地點:
SELECT Rev.column_name, Rat.column_name
FROM dbo.tblReview AS Rev
FULL OUTER JOIN dbo.tblRating AS Rat
ON Rev.VenueId = Rat.VenueId
AND Rev.UserId = Rat.UserId
WHERE (Rev.VenueId = @VenueId OR Rat.VenueId = @VenueId);
我不知道你問這個。
Try:
SELECT re.venueId, re.userId, re.review, ra.rating
FROM tblReviews re INNER JOIN tblRating ra
ON re.venueId = ra.venueId AND re.userId = ra.userId
我試過這兩種方法。工會沒有工作(我認爲),因爲這兩種數據類型不一樣。由於每個表格中並不總是數據,所以連接不起作用。 – twsJames
然後使用交叉連接。 – Gedrox