Sql多表查询问题

 需求场景:

        数据库中两张表,字段如下图所示。 需求内容:使用Sql语句,在一个结果集中展示出CreateBy和UpdateBy的用户名:

        ProductTable表,字段如下图所示:



         UserTable表,字段如下图所示:


           

             代码展示如下:

select a.ID, a.Name, a.Version, b.UserName as CreateByName, c.UserName as updatebyname from ProductTable a left join UserTable b on a.CreateBy = b.ID left join UserTable c on a.UpdateBy = c.ID

            查询结果展示如下:



            备注:left join 的好处是,若create_by或update_by字段没有值的话,也能查询出product记录


         除了SQL语句,在使用程序链接时我们经常用到LINQ语句,在LINQ语句下,相同的效果实现需要如下代码:

       

TestDbEntities dataContext = new TestDbEntities();
            var Users = dataContext.UserTable;
            var Products = dataContext.ProductTable;
            var query = from product in Products
                        join user1 in Users
                        on product.CreateBy equals user1.ID
                        join user2 in Users
                        on product.UpdateBy equals user2.ID
                        select new
                        {
                            product.ID,
                            product.Name,
                            product.Version,
                            CreateByName=user1.UserName,
                            UpdateByName=user2.UserName
                        };

        

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值