Suchen wie Zählungen auf Einträge aus SQL
-
26-09-2019 - |
Frage
Ich habe eine ähnliche Funktion zu einer Datenbank Einträge Hinzufügen ... hier ist die Struktur der DBs:
**Users**
user_id
user_name
etc.
**Entries**
entry_id
entry_content
etc.
**Likes**
user_id
entry_id
(Es ist ein wenig komplizierter als das, gibt es Gruppen / Kategorien, aber das sollte es in Ordnung erklären ...) Hier ist die SQL-Abfrage, die ich mit gerade arbeitete im Moment:
SELECT
entries.*,
DATE_FORMAT(entry_date, "%M %D, %Y") as entry_date,
groups.group_short_name,
users.user_name, users.user_id,
FROM entries
INNER JOIN groups ON groups.group_id = entries.group_id
INNER JOIN users ON users.user_id = entries.user_id
ORDER BY entry_date DESC
Ich versuche, auch gerne per Eintrag abrufen mit dieser Abfrage und frage mich, ob es möglich ist. Ich habe versucht:
COUNT(DISTINCT likes.like_id) as likes
mit
LEFT JOIN likes ON likes.entry_id = entries.entry_id
Aber ich glaube nicht, dass irgendwo in der Nähe ist richtig. Bin ich weg? Ist das möglich? Hoffe, dass alles einen Sinn.
Danke für die Hilfe im Voraus.
Lösung
Geben Sie Ihre Tabellen-Aliase, für ein ..
FROM entries e
Dann eine Spalte Abfrage hinzufügen:
select e.*, (select count(*) from Likes where entry_id = e.entry_id) as entry_likes
Andere Tipps
hinzu:
GROUP BY entries.entry_id
sehen, ob das funktioniert.
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow