2017-09-21 1 views
-1

Ich bin ziemlich neu in Laravel und habe versucht, viele Guides und ähnliche Stack Overflow-Threads zu verwenden, aber ohne Glück.SQL-Abfrage nach Laravel konvertieren

Will jemand mir helfen, diese Abfrage Laravel neu zu schreiben:

SELECT a.id, a.hits, a.url, a.sold, a.total, a.updated_at, 
     GROUP_CONCAT(b.TransID) as SONumber, 
     COUNT(SONumber) AS newHits 
FROM hits AS a 
     INNER JOIN transactions AS b 
      ON FIND_IN_SET(b.TransID, a.SONumber) > 0 
WHERE b.TransDate >= '$fromdate' || b.TransDate >= '$todate' 
GROUP BY a.id 

Das funktioniert perfekt, aber ich weiß nicht, wie es neu zu schreiben in Laravel.

Tabellen wurden nicht normalisiert, und ich musste solche Abfrage schreiben, damit es richtig funktioniert, da ich gegebene Tabellen nicht ändern konnte.

+0

Bitte lesen [Unter welchen Umständen kann ich "dringende" oder andere ähnliche Sätze zu meiner Frage hinzufügen, um schnellere Antworten zu erhalten?] (// meta.stackoverflow.com/q/326569) - Die Zusammenfassung ist, dass dies ist kein idealer Weg, um Freiwillige anzusprechen, und ist wahrscheinlich kontraproduktiv, um Antworten zu erhalten. Bitte unterlassen Sie das Hinzufügen zu Ihren Fragen. – halfer

Antwort

0

sollten Sie in der Lage sein, dies zu tun:

$query = "SELECT a.id, a.hits, a.url, a.sold, a.total, a.updated_at, GROUP_CONCAT(b.TransID) as SONumber, COUNT(SONumber) AS newHits FROM hits AS a INNER JOIN transactions AS b ON FIND_IN_SET(b.TransID, a.SONumber) > 0 WHERE b.TransDate >= " . $fromdate . " || b.TransDate >= " . "$todate" . "GROUP BY a.id"; 
$results = DB::select($query); 

Nicht sicher, ob Sie eine Tabelle a genannt haben und b oder wenn diese nur Platzhalter sind. Wenn nicht, müssen Sie wahrscheinlich die richtigen Tabellennamen interpolieren.

Sie würden eine Abfrage 'nach Laravel' nicht wirklich übersetzen, da Laravel ein MVC-Framework und keine Abfragesprache ist. Das heißt, Laravel ermöglicht es Ihnen, Abfragen mit Raw SQL bei Bedarf auszuführen.

+0

Ich denke, das OP bedeutete Umwandlung in Eloquent, die Laravel ORM (FWIW ich denke, ohne Versuch, die Frage ist aber off-topic). – halfer