錯誤代碼:907 錯誤訊息:ORA-00907:缺少右括號 PHP Laravel(雄辯方法)
P粉245489391
P粉245489391 2024-03-29 14:47:52
0
1
426

從查詢中獲得集合後,我想對其進行排序。然後,出現了以下錯誤訊息:

錯誤代碼:907 錯誤訊息:ORA-00907:缺少右括號位置:202 語句:從存在的「ATTENDANCE_LISTS」中選擇count(*) 作為聚合(從「MEETINGS」中選擇*,其中「ATTENDANCE_LISTS」. 「MEETING_ID」 = "MEETINGS"."ID" 和"STATUS_MEETING" = :p0 和"START_MEETING" <= :p1 order by "START_MEETING" desc) 綁定: [Disetujui,2022-04-19 20:11:24 ] (SQL: select count(*) 作為存在的“ATTENDANCE_LISTS”中的聚合(從“MEETINGS”中選擇*,其中“ATTENDANCE_LISTS”.“MEETING_ID”=“MEETINGS”.“ID”和“STATUS_MEETING”= DisetING_ID”=“MEETINGS”.“ID”和“STATUS_MEETING”= Disetujui 和“START_MEETING”<= 2022-04 -19 20:11:24 按“START_MEETING”訂購desc))

程式碼如下:

$meetings2 = AttendanceLists::whereHas('meeting', function ($query) {
    $now = new DateTime("now");
    $query->where('status_meeting', '=', 'Disetujui')
    ->where('start_meeting', '<=', $now)
    ->orderBy('start_meeting', 'desc')
    ;
})->paginate(5);

我只使用上面的 Laravel eloquent 方法建立了查詢,我已經為此苦苦掙扎了好幾天。請幫助我。

是的,這裡有一個看似相似的貼文: ORA-00907: 缺少右括號

但是,我遇到的問題與使用 SQL 格式手動建立查詢無關。我使用 PHP Laravel eloquent 方法建立了查詢,所以它不可能真的是關於缺少括號的問題。 **

編輯: 簡而言之,當我嘗試按「會議」屬性對出勤清單進行排序(按屬性的屬性排序)時,問題就出現了。有什麼幫助嗎?

P粉245489391
P粉245489391

全部回覆(1)
P粉652523980

這是解決方案。

解決方案是更改 whereHas to join。程式碼如下:

$meetings = AttendanceLists::join('meetings', 'meetings.id', '=', 'attendance_lists.meeting_id')
    ->where('attendance_lists.user_id', '=', $id_user)
    ->where('meetings.status_meeting', '=', 'Disetujui')
    ->where('meetings.start_meeting', 'orderBy('meetings.start_meeting', 'desc')
    ->paginate(5);
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板