我在创建查询时遇到了麻烦,这在我的脑海中应该很简单。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