我正在尝试使用多个条件连接两个表。由于第二个联接条件,以下查询不起作用。
$all_update = DB::table('posts as p')
->join('cprefs as c','p.qatype', '=', 'c.qatype')
->where('c.wwide', '=', 'p.wwide') //second join condition
->where('c.user_id', $u_id)
->where('p.arank', 1)
->get();
您需要关键字join才能使用多个连接条件。不考虑表格。
$all_update = DB::table('posts as p')
->join('cprefs as c','p.qatype', '=', 'c.qatype')
->join('cprefs as c2','p.wwide', '=', 'c2.wwide') //second join condition
->where('c.user_id', $u_id)
->where('p.arank', 1)
->get();
where()
函数期望最后一个参数是一个参数,当您传入列名时,该参数在其中
要比较两列,应使用whereColumn
方法。
考虑到这一点,您还可以编写如下代码:
$all_update = DB::table('posts as p')
->join('cprefs as c','p.qatype', '=', 'c.qatype')
->whereColumn('c.wwide', '=', 'p.wwide') //second join condition
->where('c.user_id', $u_id)
->where('p.arank', 1)
->get();
但是,只有当连接是内部连接时,这才可以正常工作,在您的情况下,这是正确的
添加多个联接子句的正确方法如下
$all_update = DB::table('posts as p')
->join('cprefs as c', function($q) {
$q->on('p.qatype', '=', 'c.qatype')
->on('c.wwide', '=', 'p.wwide'); //second join condition
})
->where('c.user_id', $u_id)
->where('p.arank', 1)
->get();
就用这个吧。
在这篇文章之后,如何使用Laravel Eloquent创建多个where子句查询? 我正在尝试插入多个“和”条件: 但我收到这个错误:
问题内容: 可以使用Hibernate标准吗? 问题答案: 我遇到了完全相同的问题,并能够像这样解决它: 注:,和在上面的代码指在属性名,和类,相应地(类具有属性等)。 对于此解决方案,您甚至不需要在中设置和参数。
问题内容: 可以使用Hibernate标准吗? 问题答案: 我遇到了完全相同的问题,并且能够像这样解决它: 注:,和在上面的代码指在属性名,和类,相应地(类具有属性等)。 对于此解决方案,您甚至不需要在中设置和参数。
问题内容: 我正在使用Selenium来测试网站,如果我发现并以多个标准为依据,是否可以正常工作?例如 : 要么 问题答案: 不,不是的。您不能像这样串联/添加选择器。反正这是无效的。但是,您可以这样编写选择器,使其覆盖所有场景并将其与 这应该返回带有标签的元素列表,这些标签具有类名并且具有
问题内容: 我有这个文件: 如果我运行以下更新: 我得到了不好的结果: 这是错误的,因为 “ something”:“ test” 应该在第二个元素中,映射等于2。 如果我将字段 “名称” 更改为 “ a” 并运行相同的更新,则得到正确的结果: 现在您可以看到 “ something”:“ test” 在正确的位置(第二个事件)。这是因为我在Mongo中使用了 “名称” 而 “名称” 是某种保留关
问题内容: 我有两个实体:和。我正在使用Hibernate 3.6。 如何使用休眠标准实现这一目标,最重要的是,我必须将其用于分页。 而“我的道”如下所示以显示jqgrid中的“问题”列表 公共列表showHelpDeskIssues(DetachedCriteria dc,int from,int size){ 对于简短的解释,请参考此问题,如何使用struts2-jqgrid插件在jqgrid