2015-07-22 3 views
1

Я пытаюсь преобразовать этот запрос SQl в QueryBuilder, но я не могу этого сделать.Laravel sql command to Laravel QueryBuilder

SELECT a.id, a.category_name, cat.Count 
FROM `categories` a 
LEFT OUTER JOIN (
SELECT `categories`.`category_parent` , COUNT(*) AS Count 
    FROM `categories` 
    GROUP BY category_parent 
    ) 
cat ON a.id = cat.category_parent 
WHERE a.category_parent = 1 

, например:

DB::table('users') 
->join('contacts',DB::raw("a.id = cat.category_parent"),function($query){ 
    $query->select(DB::raw("`categories`.`category_parent` , COUNT(*) AS Count")) 
        ->from('contacts') 
        ->groupBy('category_parent') 
->where(DB::raw("a.category_parent = 1")) 
->get(); 

как исправить этот метод в Laravel. спасибо

ответ

0

Попробуйте получить экземпляр PDO, чтобы выполнить запрос непосредственно:

$PDO=DB::connection('mysql')->getPdo(); 
    $stmt=$PDO->prepare(" 
     SELECT a.id, a.category_name, cat.Count 
     FROM `categories` a 
     LEFT OUTER JOIN (
     SELECT `categories`.`category_parent` , COUNT(*) AS Count 
      FROM `categories` 
      GROUP BY category_parent 
     ) 
     cat ON a.id = cat.category_parent 
     WHERE a.category_parent = :category_parent 
    "); 
    $stmt->bindParam(':category_parent', 1); 


    $stmt->execute(); 

    $result = $stmt->fetchAll(); 

У меня есть запрос, как, что в одном из моих проектов, работающих на Laravel 4.

Удачи!