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.

È stato utile?

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
scroll top