Ich habe die folgende Abfrage:wählen, in dem Durchschnitt mit mehreren Tabellen
"SELECT
bnbs.name,
bnbs.slug,
bnbs.city,
bnbs.website,
bnbs.description,
bnbs.profile_picture,
bnbs.price_low,
(SELECT AVG(ROUND((ratings.rating_room+ratings.rating_cleanliness+ratings.rating_service+ratings.rating_meals+ratings.rating_general)/5)) FROM ratings) AS average
FROM
bnbs
JOIN
accounts
ON
bnbs.account_id = accounts.account_id
WHERE
bnbs.average = 3
AND
bnbs.visible = 1
AND
accounts.active = 1
AND
accounts.confirmed = 1";
Als ich die „bnbs.average = 3“ in der where clausule entfernen , die Abfrage funktioniert, aber ich möchte, dass die zur Berechnung Durchschnittliche Bewertung von ALLE die Bewertungen für jedes bnb in der Tabelle Bewertungen (jedes bnb kann mehr als eine Bewertung haben), und ich möchte alle bnbs auswählen, wo die Bewertung = 3 oder> 3 oder 4, ... Ich denke, Sie verstehen es.
Wer hat eine Idee?
Ich verstehe nicht den Punkt. Irgendeine Chance auf einige richtige CREATE- und INSERT-Anweisungen UND ein gewünschtes Ergebnis? – Strawberry
Die Bewertungen für jedes bnb sind in einer separaten Tabelle (Bewertungen) gespeichert. In wollen alle bnbs, wo die durchschnittliche Bewertung (z. B. ein bnb kann mehrere Bewertungen haben - jede Bewertung in einer Reihe) ist wie 3 oder 4. – samleurs