Laravel 为加入设置排序规则(SQL 服务器)

Laravel set collation for join (SQL server)

我正在尝试将普通 SQL 查询移动到 Laravel 查询构建器。

这不是我第一次这样做,但现在 "different case has popped up"。

我需要为连接设置排序规则,简单来说SQL没问题:

"...
LEFT OUTER JOIN " . $pltable1 . " on PL01001=supplier collate Latvian_BIN
..."

Laravel 在我尝试时抛出错误:

->leftJoin($pltable1, "PL01001", "=", "supplier");

Cannot resolve the collation conflict between "SQL_Latin1_General_CP1_CI_AS" and "Latvian_BIN" in the equal to operation.

我知道这是因为我没有为连接指定排序规则,但我不知道如何执行此操作。有没有人遇到过这样的事情并找到了解决办法?

P.S。我无法更改 table 本身的默认排序规则

我记得我问过这个问题并意识到我已经找到了解决这个问题的方法:

DB::table('table1')
    ->leftJoin('table2', 'table1.column', '=', DB::raw('table2.column collate Latvian_BIN'))
    ->get();

基本上只需要在 DB::raw() 中包装一列和排序规则 希望有一天这对某人有所帮助