[英]query and subquery join in laravel
我在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
我試圖加入mastercatergory與(子類別和subling)的連接子查詢
$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");
為什么我得到空值
$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
,執行該語句並返回結果。 你不需要使用get
和DB::raw
( 請點擊這里 )。
您收到此錯誤是因為您沒有為內部子查詢提供別名。
您必須為每個子查詢命名。 例如,使用此:
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
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.