我正在处理一个使用COALESCE检索当前项目的本地化字符串的查询
sql在用作原始查询时有效,但我似乎无法通过这种方式使用查询构建器来构建连接
LEFT JOIN text as text_se
ON (main_table.text = text_se.id)
AND (text_se.lang_code = 'SV')
此代码:
->join(array('text', 'text_se', 'LEFT')
->on('main_table.text', '=', 'text_se.id')
->on('text_se.lang_code', '=', 'SV')
仅结果
LEFT JOIN text as text_se
ON (main_table.text = text_se.id AND text_se.lang_code = 'SV')
哪个不一样...... 在JOIN声明之后还有其他人使用AND并且可以帮助我吗?
答案 0 :(得分:5)
或者你可以这样做....
->join(array('text', 'text_se'), 'LEFT')
->on('main_table.text', '=', DB::Expr('text_se.id AND text_se.lang_code = "SV"'))
答案 1 :(得分:1)
为什么不在哪里使用:
->join(array('text', 'text_se', 'LEFT')
->on('main_table.text', '=', 'text_se.id')
->where('text_se.lang_code', '=', 'SV')
答案 2 :(得分:1)
这似乎适用于3.1.x:
->join(array('text', 'text_se', 'LEFT')
->on('main_table.text', '=', DB::expr('text_se.id'))
->on('text_se.lang_code', '=', DB::expr('SV'))