为一般搜索栏 Laravel 7 加入没有任何唯一 ID 的多个表,给出 sql 错误
Joining multiple tables without any unique id for general search bar Laravel 7 giving sql error
我正在尝试制作一个通用搜索栏,它将从 7 个不同的表中获取相关行,但我在加入 7 个表时遇到问题...
我的代码是
$query = $request->input('query');
$products = DB::table('manual_sellers')
->join('car_dealerships','manual_sellers.car_dealerships','=','')
->where('car_title' , 'like', "%$query%")
->orWhere('make', 'like', "%$query%")
->orWhere('make', 'like', "%$query%")
->orWhere('model', 'like', "%$query%")
->orWhere('manufact_year', 'like', "%$query%")
->orWhere('car_body', 'like', "%$query%")
->get();
尝试搜索时会抛出错误
我通常如何从 7 个表中搜索非唯一值如果您有其他好的方法,我也很感激...因为在此查询中将有大量数据要获取...
非常感谢
所以我想post这个答案来帮助别人...
$query = $request->input('query');
$products1 = DB::table('car_dealerships')
->where('car_title' , 'like', "%$query%")
->orWhere('make', 'like', "%$query%")
->orWhere('model', 'like', "%$query%")
->orWhere('manufact_year', 'like', "%$query%")
->orWhere('car_body', 'like', "%$query%")
->get();
$products2 = DB::table('manual_sellers')
->where('car_title' , 'like', "%$query%")
->orWhere('make', 'like', "%$query%")
->orWhere('model', 'like', "%$query%")
->orWhere('manufact_year', 'like', "%$query%")
->orWhere('car_body', 'like', "%$query%")
->get();
创建两个变量后,我简单地合并了数组,如下所示
$data = $products1->merge($products2);
对我有用,因为我之前尝试的方法只是将数组的数组收集在一个数组中,需要两个 foreach 循环来呈现值,这很痛苦....
但是通过像这样合并,它将父数组中的所有数组合并到一个父数组中,而我只得到了一个需要的 foreach 循环...
谢谢
我正在尝试制作一个通用搜索栏,它将从 7 个不同的表中获取相关行,但我在加入 7 个表时遇到问题... 我的代码是
$query = $request->input('query');
$products = DB::table('manual_sellers')
->join('car_dealerships','manual_sellers.car_dealerships','=','')
->where('car_title' , 'like', "%$query%")
->orWhere('make', 'like', "%$query%")
->orWhere('make', 'like', "%$query%")
->orWhere('model', 'like', "%$query%")
->orWhere('manufact_year', 'like', "%$query%")
->orWhere('car_body', 'like', "%$query%")
->get();
尝试搜索时会抛出错误
我通常如何从 7 个表中搜索非唯一值如果您有其他好的方法,我也很感激...因为在此查询中将有大量数据要获取... 非常感谢
所以我想post这个答案来帮助别人...
$query = $request->input('query');
$products1 = DB::table('car_dealerships')
->where('car_title' , 'like', "%$query%")
->orWhere('make', 'like', "%$query%")
->orWhere('model', 'like', "%$query%")
->orWhere('manufact_year', 'like', "%$query%")
->orWhere('car_body', 'like', "%$query%")
->get();
$products2 = DB::table('manual_sellers')
->where('car_title' , 'like', "%$query%")
->orWhere('make', 'like', "%$query%")
->orWhere('model', 'like', "%$query%")
->orWhere('manufact_year', 'like', "%$query%")
->orWhere('car_body', 'like', "%$query%")
->get();
创建两个变量后,我简单地合并了数组,如下所示
$data = $products1->merge($products2);
对我有用,因为我之前尝试的方法只是将数组的数组收集在一个数组中,需要两个 foreach 循环来呈现值,这很痛苦....
但是通过像这样合并,它将父数组中的所有数组合并到一个父数组中,而我只得到了一个需要的 foreach 循环...
谢谢