Ho questa query di seguito, che funziona nell’esploratore dati, ma ricevo l’errore Spiacenti, si è verificato un errore. quando tento di utilizzare la query per assegnare badge. Mi sfugge qualcosa? La query dovrebbe corrispondere se qualcuno è membro di un gruppo chiamato “chapter_” o “meta_chapter_” ed è assegnato come gruppo primario.
SELECT distinct on (u.id)
u.id
FROM users u
INNER JOIN groups g
ON u.primary_group_id = g.id
WHERE g.name LIKE 'chapter_%'
OR g.name LIKE 'meta_chapter_%'
1 Mi Piace
Per quelli attivati personalizzati è necessario aggiungere una riga in più all’inizio e alla fine. C’è un esempio in uno dei miei post qui sopra e puoi trovare maggiori informazioni su Creating triggered custom badge queries 
3 Mi Piace
Grazie! Penso che dovrò dare un’occhiata dopo una buona notte di sonno. È da un po’ che non uso SQL e immagino che dovrò controllare altri esempi e documentazione. Quello qui sotto non funziona, questo è sicuro
SELECT ub.id, ub.granted_at, g.name
from user_badges ub
INNER JOIN groups g
ON ub.id = g.id
WHERE g.name LIKE 'chapter_%'
OR g.name LIKE 'meta_chapter_%'
AND (:backfill OR ub.id IN (:user_ids))
Genera questo errore, forse sto passando informazioni errate o nomi/colonne errati.
ERROR: column q.user_id does not exist
LINE 11: JOIN users u on u.id = q.user_id
Modifica: ah sì, user_id dovrebbe essere usato da qualche parte, non id.
E come risultato finale, questi badge vengono assegnati quando si è in un gruppo il cui nome inizia con chapter_ o meta_chapter.
SELECT distinct on (gu.user_id)
gu.user_id, gu.updated_at as granted_at
FROM group_users gu
INNER JOIN groups g
ON gu.group_id = g.id
WHERE g.name LIKE 'chapter_%'
OR g.name LIKE 'meta_chapter_%'
AND (:backfill OR gu.id IN (:user_ids))
E questo per se si è in un gruppo il cui nome termina con -team.
SELECT distinct on (gu.user_id)
gu.user_id, gu.updated_at as granted_at
FROM group_users gu
INNER JOIN groups g
ON gu.group_id = g.id
WHERE g.name LIKE '%-team'
AND (:backfill OR gu.id IN (:user_ids))
1 Mi Piace