【问题标题】:query and subquery join in laravellaravel 中的查询和子查询连接
【发布时间】:2017-09-15 08:27:51
【问题描述】:

我正在 laravel 上尝试这个,但我遇到了这样的错误

SQLSTATE[42601]: Syntax error: 7 ERROR: subquery in FROM must have an alias
 LINE 3: (select * from subcategory a inner join s...
HINT: For example, FROM (SELECT ...) [AS] foo. (SQL: select * from 
mastercategory c
inner join 
 (select * from subcategory a inner join subling b on 
a.idsubcategory=b.idsubcategory_subcategory) on c.idcategory=a.idsubcategory_subcategory 

我正在尝试使用(子类别和子分类)的联接子查询来加入主类别

   $users = DB::select(DB::raw(" select *  from mastercategory c
            inner join  (select * from subcategory a inner join subling b on 
            a.idsubcategory=b.idsubcategory_subcategory) on 
            c.idcategory=a.idsubcategory_subcategory "))->get();

如何实现这个我不想使用模型提前谢谢

这是我的更新

   $users  =   DB::raw(" select a.*,b.*  from mastercategory a
                  inner join  
               (select b.*,c.* from subcategory b inner join subling c  on  
           b.idsubcategory=c.idsubcategory_subcategory) on 
          a.idcategory=b.idcategory_mastercategory"); 

为什么我得到空值

【问题讨论】:

  • 使用DB::select(DB::raw())时不需要使用get();方法。所以你的语句应该是:$users = DB::select(DB::raw("THE_SELECTION_QUERY"));
  • @ShaktiPhartiyal 我们也不需要使用DB::raw()DB::select() 作为select() 的第一个参数是原始查询,即字符串。

标签: php database postgresql laravel


【解决方案1】:
 $users = DB::select("select *  from mastercategory c
            inner join  (select * from subcategory a inner join subling b on 
            a.idsubcategory=b.idsubcategory_subcategory) as d on 
            c.idcategory=d.idsubcategory_subcategory");

当您使用DB::select 时,它会执行语句并返回结果。你不需要使用getDB::raw (check here)。

您收到此错误是因为您没有为内部子查询提供别名。

【讨论】:

  • 如果这是你想要的。请接受答案。这样就可以关闭了。
【解决方案2】:

您必须命名每个子查询。例如,使用这个:

select * from mastercategory c
inner join 
  (select * from subcategory a 
   inner join subling b on a.idsubcategory=b.idsubcategory_subcategory) as sub 
on c.idcategory=sub.idsubcategory_subcategory

我已将粗体部分:a.idsubcategory=b.idsubcategory_subcategory) 添加为 sub

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-03-29
    • 1970-01-01
    • 2020-03-12
    • 1970-01-01
    • 2015-05-19
    • 2014-02-19
    • 2015-10-11
    相关资源
    最近更新 更多