2014-03-19 88 views
1

嗨即時通訊新的Laravel和即時通訊只是試圖找出查詢生成器。Laravel mySql加入

如果我想做這個查詢:

SELECT * 
FROM product 
INNER JOIN price ON product.productid = price.productid 
LEFT JOIN purchaseitem ON product.productid = purchaseitem.productid 
WHERE product.name = '.$keyword.' 

我會在右邊線,是這樣的:

DB::table('product') 
        ->join('price','product.productid','=','price.productid') 
        ->leftJoin('purchaseitem','product.productid','=','purchaseitem.productid') 
        ->where('product.name','=','Superior King Room')->get(); 

我真的不能找出什麼是最好的方式做內部連接是。如果任何人有任何想法,這將是一個很大的幫助。

謝謝。

+0

你的代碼是正確的。有什麼問題? – itachi

回答

2

只需添加一個->select('*'),你很好走。在過去,我發現怎麼忘記了它可能會導致錯誤

 
DB::table('product') 
    ->join('price','product.productid','=','price.productid') 
    ->leftJoin('purchaseitem','product.productid','=','purchaseitem.productid') 
    ->where('product.name','=','Superior King Room') 
    ->select('*') 
    ->get(); 
0

您可以只使用DB :: select()方法:

\DB::select("SELECT * 
FROM product 
INNER JOIN price ON product.productid = price.productid 
LEFT JOIN purchaseitem ON product.productid = purchaseitem.productid 
WHERE product.name = ?", [$keyword]); 

我喜歡用這個比查詢生成器更好。這將返回一個StdClass數組,並且所有列將作爲屬性存儲在數組中的每個StdClass中。

0

你可以逃避加入的問題,並使用雄辯的關係..這是很容易和簡單,而不是寫一個很長的查詢。

這裏是鏈接

https://laravel.com/docs/5.4/eloquent-relationships

+0

如果可能請提供一段代碼,可能有助於他的具體答案 – Vasif

+0

您可以通過產品 –

+0

在產品和購買項目之間建立關係該鏈接說明了所有內容 –