2

投稿、ユーザー、お気に入りの 3 つのテーブルがあります。

Post
----------
PostId
Nombre
UserId
Banned

User
----------
UserId
UserName
Info

Favorites
-----------
PostId
UserId

私はすべての投稿を取得して、投稿がお気に入りかどうかを伝えようとしています。そのため、投稿がお気に入りに含まれていない場合、クエリに表示されますが、お気に入りフラグは false になります。

これは私のクエリです:

SELECT
 p.Nombre as title,
 CASE ISNULL(f.PostId,0) WHEN 0 THEN 'false' ELSE 'true' END as favorito
 FROM Post p 
 inner join User u on p.UserId = u.UserId 
 left outer join Favorite f on p.PostId = f.PostId 
 where 
 p.Banned = 0 

すべてを返し、お気に入りにレコードがあるかどうかを通知しますが、どこのセクションにフィルターを追加すると

 and f.UsuarioId = 4

ユーザーが気に入った投稿のみを返します。左外部結合または完全外部結合を使用する場合、セカンダリ テーブルからのレコードが存在しない場合、とにかくメイン テーブルからレコードを返す必要がありますか?

¿二次テーブルでフィルターを使用してすべての投稿を返すにはどうすればよいですか? ありがとう!

4

1 に答える 1