私は2つのテーブル 'events_archive'と 'demo_users'を持っています。イベントテーブルでは、各イベントに一意のref_id
値、demo_id
値(イベントに参加したデモンストレータのユーザーID)とclient_id
値(イベントに参加したクライアントのユーザーID)があります。デモ表では、各デモンストレータには、イベント表のdemo_id
に対応する固有のid
値があります。CodeIgniterのJOIN文のPHPの問題
私がやりたいことは、特定のクライアントが行ったイベントに参加したデモ・テーブルのすべてのデモレータをリストすることです。私はセッションデータを持つ特定のクライアントのユーザーIDを取得しています。
client_id
の値が4であるとします。イベントを共有している(つまりテーブル内で行を共有している)すべてのデモ参加者をリストしたいと思います。私は現在、私のCodeIgniterのモデルでこれを使用しています:
function demos($mid){
$this->db->select('demo_users.*');
$this->db->from('demo_users');
$this->db->join('events_archive','events_archive.demo_id = demo_users.id');
$this->db->where('events_archive.client_id',$mid);
$this->db->limit(10);
$this->db->order_by('users_demonstrators.products_sold','asc');
$demos = $this->db->get();
foreach($demos->result() as $demo){
echo $demo->first_name;
}
}
しかし、その代わりに、個別のデモをリストアップするのではなく、何度もそれらを複製します。 Demonstrator A、Demonstrator D、Demonstrator Fなどを記載する代わりに、Demonstrator A、Demonstrator A、Demonstrator Aなどを記載します。どこに間違っているのか誰かが知っていますか?
私は '$ this-> db-> distinct();'を追加しました。ありがとう – hohner