Laravel查询构建器orderBy ID无法正确排序

时间:2018-12-14 21:35:09

标签: php mysql laravel

我目前正在像这样将2个表连接在一起:

$transactions = DB::table('transactions')
->leftjoin('stripe_transactions','transactions.transaction_id','=','stripe_transactions.id')
->orderBy('transactions.id', 'desc')
->get();

虽然我的输出未按事务表ID排序。而是由stripe_transactions.id进行排序。

我尝试阅读文档并创建多个查询但结果相同。

正在寻找这样的东西:(由于where,这不起作用)

$transactions = DB::table('transactions','transactions.id', 'transactions.transaction_id')
->join('stripe_transactions','stripe_transactions.id')
->where('transactions.transaction_id','=','stripe_transactions.id')
->orderBy('transactions.id', 'desc')
->get();

运行该查询时出现错误:

  

“ on子句”中的“未知列”

为解决问题,我应该在表transactions中提到一个名为id的列和一个名为transaction_id的列。我想通过交易表中的id对表进行排序。

1 个答案:

答案 0 :(得分:1)

我已经修改了查询中的joinwhere子句。请尝试以下查询:

$transactions = DB::table('transactions')
->join('stripe_transactions','transactions.transaction_id','=','stripe_transactions.id')
->select('transactions.id', 'transactions.transaction_id')
->orderBy('transactions.id', 'desc')
->get();