2017-05-11 3 views
-3

に参加私はlaravelでこのクエリを記述する必要がありますが、私はこれがあなたのために働くかどうかを確認し、それをクエリlaravel

Select RANKED.rankTotal*MATCHED.Popularity score 
    , urlID 
    from 
    (SELECT sum(rank) as rankTotal 
      , urlID 
     FROM searchengine.indexer 
     where keyword IN("there","is") 
     group 
      by urlID 
    ) RANKED 
    , 
    (Select ID 
      , Popularity 
      From searchengine.visitedpages 
     where document LIKE '%there is%' 
    ) MATCHED 
where RANKED.urlID = MATCHED.ID ; 
+3

あなたはlaravels [クエリビルダ](https://laravel.com/docs/5.2/queries)がどのように機能するかを見てみる必要があり、それはまた、読み、あなたのクエリをより簡単にするために役立ちます。 –

答えて

-1

を書く方法を知りません。

$query = \DB::raw("Select RANKED.rankTotal*MATCHED.Popularity as score, urlID from (SELECT 
        sum(rank) as rankTotal,urlID 
        FROM searchengine.indexer 
        where (keyword=? or keyword=?) group by urlID) as RANKED, 
        (Select ID, Popularity 
        From searchengine.visitedpages where document LIKE ?) as MATCHED 
        where RANKED.urlID =MATCHED.ID ;"); 

$results = \DB::select($query, ['there', 'is', '%there is%']); 
+0

私は普通のstackoverflowではありません。だから、誰かがdownvotesを説明してもらえますか? – 2MAS

+1

これはオペアンプが求めているのではなく、これは通常のSQlをlaravelに投げ込み、それを処理させます。 –

+1

''私はこの質問をlaravelに書く必要があります - このフレーズのために、私は彼が他の方法であるクエリービルダーを知っていると思っていましたが、それを使う方法と正確に見えるものは分かりませんでした。私は間違っているかもしれませんが、クエリービルダーの代わりに、標準の 'mysqli_ *'や 'PDO'関数を実行するだけです。 –