Quindi nel mio database ho una tabella chiamata website_tags
, che contiene id, title
e così via, e ho anche una tabella chiamata websites
, con una struttura simile. E c'è anche una tabella chiamata assigned_tags
, che contiene la relazione tra tag e siti Web, quindi contiene la relazione id, tag_id and website_id
.Laravel Query Builder conta dall'unione
Quello che mi serve è unire queste tabelle con la query, ho bisogno di ottenere tutti i tag e contare quante volte questi tag vengono utilizzati. Così, per esempio website_tags contiene le seguenti informazioni:
1: men
2: women
E tag assegnati contiene come id: tag_id: website_id
1: 1: 1
2: 1: 2
3: 2: 2
Così mi metterò quel tag 'uomini' è usato in 2 siti web e tag ' donne 'è usato in 1. Come dovrei costruire la query? Per ora ho:
DB::table('website_tags')
->join('assigned_tags', 'website_tags.id', '=', 'assigned_tags.tag_id')
->select('website_tags.id as id', 'website_tags.title as title', DB::raw("count(assigned_tags.tag_id) as count"))-
>get();
Ma questo è sbagliato, questa query solo conta righe in assigned_tags.
Yup, fatto che un minuto fa, grazie comunque:) – Coffee