私の心の中で単純にするべきクエリを作成するのに問題があります。SQL Server - 2つのテーブルから情報を取得する
私は2つのテーブル(tblReviews
とtblRating
)を持っています。これらのテーブルはいずれもvenueId
とuserId
です。
同じvenueId
とuserId
を使用してレビューと評価を返す1つのクエリを作成したいとします。これは可能ですか、2つのクエリを使用する必要がありますか?事前に
おかげ
私の心の中で単純にするべきクエリを作成するのに問題があります。SQL Server - 2つのテーブルから情報を取得する
私は2つのテーブル(tblReviews
とtblRating
)を持っています。これらのテーブルはいずれもvenueId
とuserId
です。
同じvenueId
とuserId
を使用してレビューと評価を返す1つのクエリを作成したいとします。これは可能ですか、2つのクエリを使用する必要がありますか?事前に
おかげ
あなたは
SELECT *
FROM tblReviews AS rev INNER JOIN
tblRating AS rat ON rev.venueid = rat.venueid AND rev.userid = rat.userid
この問合せは、各テーブルからの一致する行を返します。 1番目、2番目、または両方のテーブルのすべてのレコードを必要とする場合は、外部結合(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
私はこれらの方法を試しました。 2つのデータ型が同じでないため、組合は機能しませんでした(私は思う)。すべてのテーブルにデータが存在するとは限らないため、結合は機能しませんでした。 – twsJames
次に、クロス結合を使用します。 – Gedrox