Bu SOL vidalama Ia € ™ m KATILIN

2 Cevap php

Ben sol çeşitli tablolar üzerinde birleştirme yapıyorum. Ne olmasını istediğiniz tüm işletmelerin listesi olmasıdır. Ardından, fotoğraflar, videolar, indirimdeki ve kategoriler bakar. Fotoğraf varsa, o tablolar videolar varsa evet, bu tabloda evet gösterir gösterir.

Bu herhangi bir sorun olmadan tüm bu yok. Bir şey hariç. Her fotoğraf için, iş gösteren birçok kez. Bir iş için DB 5 fotoğraf varsa Örneğin, bu iş beş kez gösterir.

Açıkçası, bu ben ne istediğinizi değil. Size yardım edebilir miyim?

function frontPageList() {
    $this->db->select('b.id, b.busname, b.busowner, b.webaddress, p.thumb, v.title, c.catname');
    $this->db->from ('business AS b');
    $this->db->where('b.featured', '1');
    $this->db->join('photos AS p', 'p.busid = b.id', 'left');
    $this->db->join('video AS v', 'v.busid = b.id', 'left');
    $this->db->join('specials AS s', 's.busid = b.id', 'left');
    $this->db->join('category As c', 'b.category = c.id', 'left');
    return $this->db->get();

2 Cevap

Eğer fotoğraf kendileri, ya da kapmak biri umurumda değil, sen bir üzerinde GROUP BY b.id eklemeyi deneyebilirsiniz

Birden fazla maç varsa bir katılmak satır sayısını çarpacaktır. Eğer istediğiniz bu değilse, o zaman bir sayımını almaya başlamalı ya ve daha sonra gerçek satırlar için ayrı ayrı her bir tablo sorgu veya business değişim değeri zaman dayalı kod gruplandırma yapmalıyım.