Chcę utworzyć połączenie z wieloma warunkami:
->join("filters", function($join) {
$join->on("filters.result_id", "=", "results.id");
$join->on("filters.result_filter_id", "=", 2);
$join->on("filters.value", ">", 1);
})
Powoduje to błąd:
Nieznana kolumna "2" w "klauzuli"
W jaki sposób mogę użyć rzeczywistych wartości w łączeniu na warunek bez wymownej interpretacji go jako nazwy kolumny? Działa dobrze z rzeczywistą kwerendą SQL:
JOIN filters ON filters.result_id = results.id
AND filters.result_filter_id = 2
AND filters.value > 1
Odpowiedzi:
0 dla odpowiedzi № 1Zastąpić on
z where
jeśli chcesz filtrować dołączenie
Jeśli chcesz użyć klauzuli "where" w swoich połączeniach, możesz użyć metod where i orWhere na join
->join("filters", function($join) {
$join->on("filters.result_id", "=", "results.id")
->where("filters.result_filter_id", "=", 2)
->where("filters.value", ">", 1);
})