Récupération comme compte sur les entrées de SQL
-
26-09-2019 - |
Question
J'ai une comme fonction ajoutais à une base de données entrées ... voici la structure des blocs de données:
**Users**
user_id
user_name
etc.
**Entries**
entry_id
entry_content
etc.
**Likes**
user_id
entry_id
(Il est un peu plus compliqué que cela, il y a des groupes / catégories, mais cela ne devrait l'expliquer bien ...) Voici la requête SQL Je travaille avec au 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
Je suis en train de récupérer aussi aime par entrée avec cette requête et je me demandais s'il est possible. J'ai essayé:
COUNT(DISTINCT likes.like_id) as likes
avec
LEFT JOIN likes ON likes.entry_id = entries.entry_id
Mais je ne pense pas que ce soit partout près de droite. Suis-je loin? Est-ce possible? Je espère que tout fait sens.
Merci pour l'aide à l'avance.
La solution
Donnez à vos alias tables, pour un ..
FROM entries e
Ensuite, ajoutez une requête de la colonne:
select e.*, (select count(*) from Likes where entry_id = e.entry_id) as entry_likes
Autres conseils
Ajouter:
GROUP BY entries.entry_id
voir si cela fonctionne.
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow