linq 查询内连接和左连接的问题

发布于 2024-10-26 05:36:23 字数 333 浏览 1 评论 0原文

我有 3 个名为 PostsTagsPostXTags 的表,PostXTags 是帖子和标签之间的连接器。

我尝试在 linq 中进行以下查询,但我从未获得理想的结果。

请帮我写出正确的 linq 这个查询:

SELECT * FROM Posts
INNER JOIN PostXTags
ON Posts.PostID = PostXTags.PostID
LEFT JOIN Tags
ON PostXTags.TagID = Tags.TagID

I have 3 tables named Posts, Tags and PostXTags that PostXTags is connector between Posts and Tags.

I tried to make the following query in linq But I've never achieved a ideal result.

Please help me write the correct linq this query:

SELECT * FROM Posts
INNER JOIN PostXTags
ON Posts.PostID = PostXTags.PostID
LEFT JOIN Tags
ON PostXTags.TagID = Tags.TagID

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

弱骨蛰伏 2024-11-02 05:36:23
var query = from p in Posts
            join x in PostXTags on p.PostID equals x.PostID
            join t in Tags on x.TagID equals t.TagID into joinedTags
            from t in joinedTags.DefaultIfEmpty()  //left join                
            select new { Posts = p, Tags = t };    //t could be null   
var query = from p in Posts
            join x in PostXTags on p.PostID equals x.PostID
            join t in Tags on x.TagID equals t.TagID into joinedTags
            from t in joinedTags.DefaultIfEmpty()  //left join                
            select new { Posts = p, Tags = t };    //t could be null   
蓦然回首 2024-11-02 05:36:23

我想你想实现这个目标:

var query = context.Tags.Where(t => t.Id == id).SelectMany(t => t.Posts);

I think you want to achieve this:

var query = context.Tags.Where(t => t.Id == id).SelectMany(t => t.Posts);
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文