使用linq从多个表中选择

时间:2013-06-28 14:31:29

标签: c# asp.net linq-to-sql

我正在尝试使用linq执行以下SQL语句:

SELECT TTT.SomeField
FROM Table1 as T, Table2 as TT, Table3 as TTT
WHERE (T.NumberID = 100 OR T.NumberID = 101)
  AND T.QuestionID = 200
  AND T.ResponseID = TT.ResponseID
  AND TT.AnswerID = TTT.AnswerID

基本上从第三个表中获取一个字段,基于与其他2个表的主/外键关系。预计每次都会有一个结果。

2 个答案:

答案 0 :(得分:2)

var query = from t in db.Table1
            join tt in db.Table2 on t.ResponseID equals tt.ResponseID
            join ttt in db.Table3 on tt.AnswerID equals ttt.AnswerID
            where (t.NumberID == 100 || t.NumberID == 101) && t.QuestionID == 200
            select ttt.SomeField

如果您总是希望获得单个结果,则可以将其包含在().Single()中,或者,如果找不到任何结果,则将其包含在().SingleOrDefault()中。

答案 1 :(得分:0)

如果我理解你的错误。你应该读一些关于Joins的内容。 here