php - 如何在 Laravel 的单个查询中从多个表中选择多个列?

标签 php mysql sql database laravel

我正在编写函数来从许多表(例如用户表和产品表)中搜索多个列,这就是我正在尝试的方法

Route::post ( '/search', function () {
$q = Input::get ( 'q' );
$user = DB::table('users')->where ( 'name', 'LIKE', '%' . $q . '%' )->orWhere ( 'email', 'LIKE', '%' . $q . '%' )->get ();
if (count ( $user ) > 0)
    return view ( 'welcome' )->withDetails ( $user )->withQuery ( $q );
else
    return view ( 'welcome' )->withMessage ( 'No Details found. Try to search again !' );

这仅用于选择许多列,但只有一个表,即用户表,但我有另一个表,即产品表,并且那里有product_name列。所以我想将它包含在搜索查询中。我应该使用哪种方法,聚合方法还是联合方法?我尝试了一些可能的方法,但还没有运气。请指导我。谢谢。

最佳答案

这是一些东西。 (我假设了一些点,因为您有 id 为 1 的用户和 id 为 1 的产品)

1)联合方法:

$users= \App\User::FindOrFail(1);
$productsWithUsers = \App\Products::where(['id'=>1])->union($table1)->get();

现在 $productsWithUsers 拥有用户和产品的所有列

关于php - 如何在 Laravel 的单个查询中从多个表中选择多个列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46571142/

相关文章:

sql - 使用 SQL 获取文件扩展名?

php - 如果值不存在,如何在左连接字段上返回 null

php - 将页眉和页脚分离到各自的文件中

php - Cookie 与基于 Session 的 flash 消息

php - 如何隐藏 URL 中包含的高分信息?

php - 确定 PHP 下周

sql - Postgresql 选择行和更新列

php - 拆分字符串形成多维数组键?

mysql - SQL GROUP BY 返回空集

sql - 如何一次加载特定行 100