两个表是上下级关系,把两个表合成一个表(注:两个表表结构不同)
我们先看一下最原始的两个表,并且没有外键关系,是通过某个字段进行关联的
上边就是显示的两个表,两个表是通过infoid关联的,我这里想把他合并成一个表
先看第一种情况:
这里是通过关联字段进行合并后的数据,此时你会发现数据都出现重复的选项了,如果这个不是你想要的情况
下边看第二种情况:
这个是通过语句进行合并,这样数据没有出现重复项,但是在项目中这只是一个字符串,转json有些麻烦
下边看第三种情况:在项目中实现,列表为json格式的数据
//品牌类
public class InfoEntity
{
public int id { get; set; }
public string Name{ get; set; }
public List<item> Items { get; set; }
}
//车型类
public class item
{
public int id { get; set; }
public int infoid{ get; set; }
public string itemName { get; set; }
}
//查询列表方法 out为返回值
public object GetInfolist(out int result)
{
try
{
sql = $@"select * from Info";
using (var conn = new SqlConnection(connStr))
{
var InfoList = conn.GetDataTable(sql).DataTableToModelList<InfoEntity>();
foreach (var Info In InfoList )
{
var items = ItemBaseBLL.GetByWhere($"where 1=1 and infoid='{Info .id}'");
if (items != null && items.Count() > 0)
{
Info.Items = new List<VoteItem>();
foreach (var item in item)
{
item it = new item();
it.id = item.id;
it.infoid= item.infoid;
it.VoteItemName= item.VoteItemName;
Info.Items.Add(it);
}
}
}
result = 0;
return InfoList ;
}
}
catch (Exception ex)
{
result = 1;
return new object();
}
}
这样最后的返回值为:
这就是最后输出的效果,这样方便前台进行交互