如何从 SQL Server 中的多个表中搜索值列表?

时间:2021-02-12 03:58:01

标签: sql linq nhibernate

我正在尝试构建一个查询,其中我需要基于方法中传递的列表对两个表的过滤器的结果。

让我解释一下...

  1. 我有两个列表 accountnumbersdescription。我将这些列表传递给该方法,并尝试根据左连接从两个表中选择匹配的值对。

  2. 我有两个表 accountaccountdescriptionhistory。这两个表具有基于公共列 accountid 的关系,它具有名为 accountnumberdescription 的列。这些列用于通过传递两个列表来查找匹配的记录(在第 1 点中解释)。

我正在尝试使用 Nhibernate 的 CreateQuery 设计一个简单的 SQL 查询:

var queryTest = session.CreateQuery("FROM Account AS acct LEFT JOIN AccountDescriptionHistory AS " +
                        "acctHist ON acct.Id = acctHist.Account.Id WHERE " +
                        "acct.Owner.Id=:p0 AND " +
                        "acct.IsDeleted=false OR " +
                        "acct.AccountNumber IN (:accountNumbers)")" +
                        "acct.Description IN (:descriptions)")
                        .SetParameter("p0", owner.Id)
                        .SetParameterList("accountNumbers", accountlst).
                        .SetParameterList("descriptions", descriptionlst);;

        var result = queryTest.List();

0 个答案:

没有答案