问题描述
select*fromt1wheret1.field1in(selectt2.field2fromt2)
请教用linq怎么写?
解决方案
解决方案二:
ti.Where(o=>t2.Any(a=>o.field1.Contains(a.field2);
解决方案三:
t1.select(o=>o.field1).Intersect(t2.select(o=>o.field2));
解决方案四:
引用2楼test104的回复:
t1.select(o=>o.field1).Intersect(t2.select(o=>o.field2));
请教用fromsint1selects这种方式应该怎么写呢?谢谢!
解决方案五:
你要说明,你是需要哪一种linqprovider?如果只是linqforobject的结果,那么可以机械地写成any(x=>.......)这类形式。但是如果想让数据linqprovider可以直接访问为数据库语言,通常是要用join标准化形式,也就是说,你要首先把你的sql语句改为标准化的innerjoin关系操作形式,然后再写linq语句。
解决方案六:
fromxint1fromyint2wherex.field1==y.field2selectx;
解决方案七:
引用5楼qbilbo的回复:
fromxint1fromyint2wherex.field1==y.field2selectx;
谢谢指点,已经实现了in。我想查询t1表有但是t2表没有的记录怎么写呢,把上面的语句改成x.field1!=y.field2查出来是不对的
解决方案八:
Contains关键字
解决方案九:
fromxint1joinyint2onx.field1equalsy.field2intotmpfromzintmp.DefaultIfEmpty()wherez==nullselectx;
解决方案十:
另外,同问:直接写t1.where...这样不是更方便吗?为什么不行?
时间: 2024-08-02 10:32:04