2016-10-06 10 views
0

の「x」の範囲内にあるところ、私は、彼らがお互いの「3」+/-ているとき、私は2つの値を結合するMySQLのクエリを持っている「に参加します」 (私は、なぜ完全にはよく分からない「と」文がまったく同じであるが、それはそれが仕事作ったものだ)Laravelは、2つの値が互いに

私は両方

$join->on('i.direction', '-', 'i2.MWD', '<' 3) 

を使用して雄弁にこれを変換しようとしました
$join->on('i.direction', '=', 'i2.MWD') 
    ->where('i.direction', '-', 'i2.MWD', '<' 3) 

上記の2つの例は私に空の結果を与えます。どちらの例でも '<'を '>'に変更すると、両方のテーブルからすべての結合データが取得されます。

は私も使ってみたDB ::回避策として生:

SQLSTATE[42S22]: Column not found: 1054 Unknown column '' in 'on clause' 
(SQL: select count(*) as aggregate 
from (select * from `input` 
inner join 
(select MWD, SWH, SWP, BUOY,Time from stations order by Time desc limit 4) 
    as i2 on ABS(input.direction - i2.MWD) < 3 
    and ABS(input.direction - i2.MWD) < 3 = ``) count_row_table) 

(末尾の後に挿入されている= '':私は以下のエラーを与える

$join->on(DB::raw('ABS(input.direction - i2.MWD) < 3 
and ABS(input.direction - i2.MWD) < 3')); 

'i2.MWD)< 3'は私を混乱させる)。

誰かがEloquentを使用してiDirection & i2.MWD(プラスまたはマイナス3)の2つの値を結合するソリューションを考え出すことができれば、非常に感謝します。あなたがここでやろうとした何

答えて

0

->where('i.direction', '-', 'i2.MWD', '<' 3) 

あなたは生のところ、このようなのために変更する必要があります。

->whereRaw('i.direction - i2.MWD < ?', [3]) 

このすべきことができます。

+0

私はあなたが示唆したようにしてみました:($ ij-> ]);しかし、私はまだ 'i.direction'が 'i2.MWD'と完全に一致する結果しか得ていません。joinステートメントは最初の基準に一致し、 'whereRaw'ステートメントには一致しません。 – TomAudre

関連する問題