Merhabalar,
Bu şekilde bir sorgum var.
$mcab = MCab::join('m_cab_types', 'm_cabs.mcabtype_id', '=', 'm_cab_types.id')
->where([
['m_cab_types.passenger', '>=', '8'],
['m_cab_types.suitcase', '>=', '1'],
])
->orderBy('mile_price', 'asc')->get();
return json_encode($mcab);
Çıktı olarak ise şöyle bir şey alıyorum.
[{"id":2,"mcaboffice_id":2,"mcabtype_id":2,"reg_number":"548 C 8516","mile_price":"1.6","created_at":"2016-11-07 12:44:35","updated_at":"2016-11-07 12:44:35","name":"Big Car","passenger":10,"suitcase":5}]
Laravel debugbar da sql karşılığı bu şekilde çıkıyor.
select * from `m_cabs` inner join `m_cab_types` on `m_cabs`.`mcabtype_id` = `m_cab_types`.`id` where (`m_cab_types`.`passenger` >= '8' and `m_cab_types`.`suitcase` >= '1') order by `mile_price` asc
Sql kodunu phpmyadminde çalıştırğımda ise her şey aynı sadece id değeri 3 olarak dönüyor. Doğru olan 3 fakat laravel id yi 2 olarak döndürüyor bunun nedenini anlamış değilim. Where ve join beraber kullanımını hatalı kullanıyorum diye şöyle bir sorgu denedim.
DB::select("select * from `m_cabs` inner join `m_cab_types` on `m_cabs`.`mcabtype_id` = `m_cab_types`.`id` where (`m_cab_types`.`passenger` >= '8' and `m_cab_types`.`suitcase` >= '1') order by `mile_price` asc");
Bu sorguda da yine id yi 2 olarak döndürüyor.
Acaba join ve where beraber kullanımı farklı bir şekilde mi ? Neden bu şekilde bir şey oluyor.