2017-03-11 7 views
0

パスポート番号を持つ候補者のマスターレコードがあります(表1)。候補者のパスポート番号を持つ別のレコード(テーブル2)があります。今私は、たとえばため、TABLE1Codeigniterデータベースからすべての重複レコードを取得して表示する

に表2からパスポート番号に一致するすべての重複パスポート番号とそのデータを検索し、表示したい:

table1 : 
    id | name | passport_number | test_date 
    1 | jane doe | a123456 | 1-Jan-2017 
    2 | jane doe | a123456 | 2-Jan-2017 
    3 | jane doe | a123456 | 3-Jan-2017 
    4 | doe jane | b123456 | 1-Jan-2017 
    5 | doe jane | b123456 | 2-Jan-2017 
    6 | name | d123456 | 5-Jan-2017 

    table2: 
    id | passport_number | test_date 
    1 | a123456 | 1-Jan-2017 
    2 | c123456 | 4-Jan-2017 
    3 | a123456 | 2-Jan-2017 
    4 | b123456 | 1-Jan-2017 
    5 | b123456 | 2-Jan-2017 

Results should be: 
id | name | passport_number | test_date 
    1 | jane doe | a123456 | 1-Jan-2017 
    2 | jane doe | a123456 | 2-Jan-2017 
    3 | jane doe | a123456 | 3-Jan-2017 
    4 | doe jane | b123456 | 1-Jan-2017 
    5 | doe jane | b123456 | 2-Jan-2017 

今、私は候補者がいる場合にのみ、(passport_numbersのすべてのデータを取得したいですtable1の2つのテスト日にtable2のtable1のpassport_numberと比較して現れ、この候補者が前の日付にテストを何回行ったかを見る。それは、group_byまたはcountのための1つのエントリだけでなく、パスポートのすべての重複エントリを表示する必要があります。

+1

のようなものかもしれない[ここMySQLで重複を見つけることではない-CI-特定の回答の束だ。](http://stackoverflow.com/questions/688549/find-duplicate-values-in-) – ourmandave

答えて

0

あなたのクエリは、この

$this->db->select('*'); 
$this->db->from('table1'); 
$this->db->join('table2', 'table1.passport_number = table2.passport_number ', 'left'); 
$query = $this->db->get(); 
return $query->result(); 
0
$this->db->select("t1.*", FALSE); 
$this->db->from("table1 t1, table2 t2"); 
$this->db->where("t1.passport_number", "t2.passport_number", FALSE); 
$this->db->group_by("t1.id"); 
$result = $this->db->get(); 
+0

エレナのおかげで、私はうまくいきますが、ちょっとした問題があります。group_by( "passport_number")を使うと、結果が壊れてしまい、同じパスポート番号をグループ化していません。何か案は ? – Mysticalsam

+0

私のクエリを使用した場合は、$ this-> db-> group_by( "t1.passport_number"); - 2行(id = 1とid = 4)を返します。 –

関連する問題