내 마음 속의 간단한 쿼리를 만드는 데 어려움이 있습니다.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);
당신이 요청하는 경우 모르는 .
시도 :
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