Veritabanımda website_tags
adlı id, title
vb. Içeren tablo var ve benzer yapıya sahip websites
adlı bir tablo var. Ayrıca etiketler ve web siteleri arasındaki ilişkiyi içeren assigned_tags
adlı bir tablo vardır, bu nedenle id, tag_id and website_id
ilişkisini içerir.Laravel Sorgu Oluşturucusu birleştirme sayısından
İhtiyacım olan şey bu tabloları sorgu ile birleştirmek, tüm etiketleri almam ve bu etiketlerin kaç kez kullanıldığını saymam gerekiyor. TAG_ID:
1: men
2: women
Ve atanan etiketler kimliği gibi içerir: Yani, örneğin website_tags için aşağıdaki bilgiler içermektedir website_id bu etiket 'erkekler' 2 web siteleri ve etiketinde kullanılır yüzden alacak
1: 1: 1
2: 1: 2
3: 2: 2
' kadın '1 kullanılır. Sorguyu nasıl oluşturmalıyım? İçin şimdi var:
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();
Ama bu sorgu sadece assigned_tags satırları sayar, yanlıştır.
yup gibi bir şey deneyin (sadece normal SQL benzeri) teşekkürler zaten saymak nasıl bilecek
groupBy
tanımlamak zorunda:) – Coffee