Benötigen Sie Hilfe, um eine MYSQL-Abfrage zusammenzufassen, die Folgendes zurückgibt (wenn es möglich ist). Im Moment extrahiere ich die Daten, die ich brauche, mit zwei Abfragen, würde mich aber freuen, wenn es mit nur einem möglich wäre.MYSQL-Abfrage, mehrere Tabellen mit Durchschnitt
Ich habe zwei Tabellen. Eine Dokumententabelle, die alle verfügbaren Dokumente auflistet. Ich habe auch eine Tabelle mit Bewertungen für die verschiedenen Dokumente. Es kann mehrere Bewertungen für jedes Dokument geben und ich bin an der durchschnittlichen Bewertung für ein Dokument interessiert.
Tabelle Dokument
+-------+------------+
| docId | docTitle |
+----+---------------+
| 1 | Doc1 title |
| 2 | Doc2 title |
+-------+------------+
Tabelle kommentiert
+------------+---------------+
| docId | commentRating |
+------------+---------------+
| 1 | 5 |
| 1 | 3 |
| 2 | 1 |
| 2 | 4 |
+------------+---------------+
Erhaltenes Ergebnis aus Abfrage
+----+------------+-----------+
| id | title | avgRating |
+----+------------+-----------+
| 1 | Doc1 title | 4 |
| 2 | Doc2 title | 2,5 |
+----+------------+-----------+
gelöst! benutzte ich diese Abfrage das Ergebnis zu erhalten, die ich wollte:
SELECT doc.docId, doc.docTitle, doc.docThumbnail, averageRating
from `document` as doc
Left join (
select * , avg(commentRating)
as averageRating from comments
group by comments.docId
)
as rat On commentRating = doc.docid
Wir wechselten zur gleichen Zeit, aber ich war so langsam! – MohaMad