這是我用於左連接的查詢,它工作正常,但是當我將其轉換爲laravel語法時缺少某些內容。Sql left使用laravel語法顯示錯誤加入查詢
查詢轉換爲
$result = DB::select("select amenities.name as
name,amenities.type_id,amenities.id as id, amenities.icon, rooms.id as status
from amenities left join rooms on find_in_set(amenities.id, rooms.amenities)
and rooms.id = $room_id and type_id !=4");
和我這樣做
$result = DB::table('amenities')
->select('amenities.name as name', 'amenities.type_id' , 'amenities.id as id'
, 'amenities.icon', 'rooms.id as status')
->leftJoin('rooms', function ($join) {
$join->on('FIND_IN_SET(amenities.id, rooms.amenities)')
->where('rooms.id' , '=', '$room_id')
->where('type_id','!=', 4);
})->get();
的錯誤是
InvalidArgumentException在 F:\ XAMPP \ htdocs中\ arheb \ Arheb \ vendor \ laravel \ framework \ src \ Illuminate \ Database \ Query \ JoinClause.php 79行:沒有足夠的參數s的on條款。
原始查詢中沒有'Where'子句。你可以在你嘗試的第二個查詢中將「where」更改爲「and」。 –
我如何添加,而不是在哪裏,所以你的意思是我添加和在括號內,我不知道laravel是如何工作的,這就是爲什麼我用它在哪裏,所以它對待它和。 – Hassaan
對不起。將'where'字改爲'on'。這應該推斷'join'的'和'條件。 –