如何把两张表数据合并成一张表显示

一.数据库前提

  1. 两张表的字段条数相同

  2. 两张表的数据类型相同

二.关系如下 :医嘱明细表里字段医嘱项目ID,它代表药品id和检查项目id然后通过医嘱明细表里的字段医嘱项目类型用枚举的方式来区分,1为药品2为检查项目。合并表要用到Union,同时要建一个实体类让它们在控制器的名称和实体类的相同。
《如何把两张表数据合并成一张表显示》
控制器代码:

  public ActionResult DoctorManagetion(LayuiTablePage layuiTablePage)

        { 

            //1、连接药品

            var listDrug = (from tbDoctoradvice
in myModels.B_Doctoradvice

                            join tbChekin in
myModels.B_Checkin on tbDoctoradvice.CheckinID equals tbChekin.CheckinID

                            join
tbDoctoradviceDtail in myModels.B_DoctoradviceDetail on
tbDoctoradvice.DoctoradviceID equals tbDoctoradviceDtail.DoctoradviceID

                            join tbDrug in myModels.B_Drug
on tbDoctoradviceDtail.DoctoradviceItemID equals tbDrug.DrugID

                            join tbPharemacy in
myModels.B_Pharemacy on tbDrug.PharemacyID equals tbPharemacy.PharemacyID

                            where
tbDoctoradviceDtail.DoctoradviceType == 1 

                            select new
DoctoradviceVo

                            {

              DoctoradviceDetailID =
tbDoctoradviceDtail.DoctoradviceDetailID,

              DoctoradviceItemID =
tbDrug.DrugID,

              PharemacyID =
tbPharemacy.PharemacyID,

              DrugNumber = tbDrug.DrugNumber,

              DrugName = tbDrug.DrugName,

              Specification =
tbDrug.Specification,

              Frequency = tbDrug.Frequency,

              Pharemacy = tbPharemacy.Pharemacy,

              Uselevel =
tbDoctoradviceDtail.Uselevel,

              StartEnjointime =
tbDoctoradviceDtail.StartEnjointime,

              StopEnjointime =
tbDoctoradviceDtail.StopEnjointime,

              LongTypeNo=tbDoctoradviceDtail.LongTypeNo

                            }).ToList();

    

//2、连接检查项目

            var listItem = (from tbDoctoradvice
in myModels.B_Doctoradvice

                            join tbChekin in
myModels.B_Checkin on tbDoctoradvice.CheckinID equals tbChekin.CheckinID

                            join
tbDoctoradviceDtail in myModels.B_DoctoradviceDetail on
tbDoctoradvice.DoctoradviceID equals tbDoctoradviceDtail.DoctoradviceID

                            join tbItem in
myModels.B_Item on tbDoctoradviceDtail.DoctoradviceItemID equals tbItem.ItemID

                            join tbPharemacy in
myModels.B_Pharemacy on tbItem.PharemacyID equals tbPharemacy.PharemacyID

                            where
tbDoctoradviceDtail.DoctoradviceType == 2      
                      select new
DoctoradviceVo

                            {

                 DoctoradviceDetailID =
tbDoctoradviceDtail.DoctoradviceDetailID,

                 DoctoradviceItemID =
tbItem.ItemID,

                 PharemacyID = tbPharemacy.PharemacyID,

                 DrugNumber =
tbItem.ItemNumber,

                 DrugName = tbItem.Item,

                 Specification =
tbItem.specification,

                 Frequency = tbItem.frequency,

                 Pharemacy =
tbPharemacy.Pharemacy,

                 Uselevel =
tbDoctoradviceDtail.Uselevel,

                 StartEnjointime =
tbDoctoradviceDtail.StartEnjointime,

                  StopEnjointime =
tbDoctoradviceDtail.StopEnjointime,

                  LongTypeNo=tbDoctoradviceDtail.LongTypeNo

                            }).ToList();

 

  IEnumerable<DoctoradviceVo> intsResult
= listDrug.Union(listItem);//合并表关键

 

//总条数

 var intTotalRow = intsResult.Count();

 

//分页

 List<DoctoradviceVo> list = intsResult

                                       .Skip(layuiTablePage.GetStartIndex())

                                      
.Take(layuiTablePage.limit)

                                      
.ToList();

 

//调用分页封装类

LayuiTableData<DoctoradviceVo>
layuiTableData =

New  LayuiTableData<DoctoradviceVo>();

   layuiTableData.count
= intTotalRow;

 layuiTableData.data = list;

return
Json(layuiTableData, JsonRequestBehavior.AllowGet);

 }

《如何把两张表数据合并成一张表显示》

    原文作者:778.
    原文地址: https://blog.csdn.net/weixin_44546554/article/details/93963001
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞