投稿、ユーザー、お気に入りの 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
ユーザーが気に入った投稿のみを返します。左外部結合または完全外部結合を使用する場合、セカンダリ テーブルからのレコードが存在しない場合、とにかくメイン テーブルからレコードを返す必要がありますか?
¿二次テーブルでフィルターを使用してすべての投稿を返すにはどうすればよいですか? ありがとう!