我环顾四周,发现了一些关于向JOIN子句添加第二个条件的帖子,但它们总是有一个列链接到另一个的实例,但在我的实例中我需要一个列等于某个值。我试图模仿的RAW SQL是:
LEFT OUTER JOIN dbo.TimeCardHeader AS tch2 on tch1.EmployeeID = tch2.EmployeeID && tch2.WeekEndingDate = @PayPeriod
正如您所看到的,我的第二个连接条件是将表中的列值与变量匹配。我尝试了以下LINQ队列,但它们都失败了。
join leftth2 in db.TimeCardHeaders on th1.EmployeeID equals leftth2.EmployeeID AND leftth2.WeekEndingDate == PayPeriod into leftjointh2
join leftth2 in db.TimeCardHeaders on th1.EmployeeID equals leftth2.EmployeeID && leftth2.WeekEndingDate == PayPeriod into leftjointh2
join leftth2 in db.TimeCardHeaders on new
{
employeeID = th1.EmployeeID,
weekEndingDate = leftth2.WeekEndingDate
} equals new
{
employeeID = leftth2.EmployeeID,
weekEndingDate = PayPeriod
}
前两个失败说AND
和&&
无效,最后一个失败说leftth2
不在左侧范围内。
这样做的正确方法是什么?
答案 0 :(得分:3)
条件
<?php echo $this->render("../ads/_search", ['model' => $model]); ?>
<?php Pjax::begin(); ?>
<?= GridView::widget([
'dataProvider' => $dataProvider,
'filterModel' => $model,
'showOnEmpty' => false,
'summary' => '',
'showFooter' => false,
'showHeader' => false,
'columns' => [
'name',
'type',
'explanation',
'address',
'province_name',
'cost',
],
]);?>
<?php Pjax::end(); ?>
不喜欢加入我的一部分 - 它不是比较两个不同行中的数据。感觉它应该是您加入 的一部分,导致:
tch2.WeekEndingDate = @PayPeriod