Recupero come conteggi sulle voci da SQL
-
26-09-2019 - |
Domanda
Sono stato l'aggiunta di una funzione simile a un database di voci ... Ecco la struttura dei DB:
**Users**
user_id
user_name
etc.
**Entries**
entry_id
entry_content
etc.
**Likes**
user_id
entry_id
(E 'un po' più complicato di così, ci sono gruppi / categorie, ma che dovrebbero spiegarlo bene ...) Ecco la query SQL con cui sto lavorando in questo momento:
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
sto cercando di recuperare anche calibro per ogni linea con questa domanda e si chiede se è possibile. Ho provato:
COUNT(DISTINCT likes.like_id) as likes
con
LEFT JOIN likes ON likes.entry_id = entries.entry_id
Ma io non credo che sia giusto da nessuna parte vicino. Am I lontano? È possibile? Spero tutto aveva un senso.
Grazie per l'aiuto in anticipo.
Soluzione
Dare il vostro tabelle alias, per un ..
FROM entries e
Quindi aggiungere una query di colonna:
select e.*, (select count(*) from Likes where entry_id = e.entry_id) as entry_likes
Altri suggerimenti
Aggiungi:
GROUP BY entries.entry_id
vedere se funziona.
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow