Hier ist meine Abfrage mit fließenden Abfrage-Generator.Wie wählt man mit Laravels flüssigem Query Builder?
$query = DB::table('category_issue')
->select('issues.*')
->where('category_id', '=', 1)
->join('issues', 'category_issue.issue_id', '=', 'issues.id')
->left_join('issue_subscriptions', 'issues.id', '=', 'issue_subscriptions.issue_id')
->group_by('issues.id')
->order_by(DB::raw('COUNT(issue_subscriptions.issue_id)'), 'desc')
->get();
Wie Sie sehen können, bestelle ich durch eine Zählung aus der verbundenen Tabelle. Das funktioniert gut. Ich möchte jedoch, dass diese Anzahl mit meiner Auswahl zurückgegeben wird.
Hier ist die meine rohe Fortsetzung Abfrage, die gut funktioniert.
Select issues.*, COUNT(issue_subscriptions.issue_id) AS followers
FROM category_issue JOIN Issues ON category_issue.issue_id = issues.id
LEFT JOIN issue_subscriptions ON issues.id = issue_subscriptions.issue_id
WHERE category_issue.category_id = 1
GROUP BY issues.id
ORDER BY followers DESC
Wie würde ich mit Laravel's fließendem Query Builder auswählen? Ich bin mir bewusst, dass ich eine rohe SQL-Abfrage verwenden kann, aber ich möchte das, wenn möglich, vermeiden. Jede Hilfe wäre willkommen, danke im Voraus!
ahh ja, ich war mir dessen bewusst. Außer, ich hatte gehofft, es in einer einzigen Abfrage zu tun, ähnlich der rohen Fortsetzung, die ich gepostet habe. Dieser Ansatz würde erfordern, dass ich meine Daten durchlaufe und sie für jede Zeile zähle (die Anzahl jeder Zeile kann und wird unterschiedlich sein). Irgendwelche anderen Ideen? Danke für die Hilfe! –
Link funktioniert nicht mehr :( – Damon
Danke @Damon Ich habe den Link aktualisiert. –