2

これは、この codeigniter クエリを記述する最良の方法ですか?

$where = array('registration_status_fk' => 2, 'membership.membership_type_id' => 4);
$join = array('membership', 'membership.id=members.id');

$query = $this->join($join[0], $join[1])->get_where($this->tbl_name, $where);

または、私がやっていることを達成するためのより良い方法はありますか?

これは私が得るエラーです

Error Number: 1054

Unknown column 'membership.membership_type_id' in 'where clause'

SELECT * FROM (`member`) WHERE `registration_status_fk` = 2 AND `membership`.`membership_type_id` = 4

Filename: C:\xampp\htdocs\OAWA\system\database\DB_driver.php

Line Number: 330
4

3 に答える 3

5

このように結合クエリを書くことができます。

$this->db->select('*')->from('members')->join('membership', 'membership.id=members.id')->where($where)->get();

$where配列では、列名を含むテーブル名が必要です。または、両方のテーブルに同じ列がある場合、機能しない場合があります。

于 2012-11-10T22:32:52.693 に答える
0

あなたはとても近いです。

あなたの例を使用して、正しい結果を生成している独自の join / get_where ステートメントを作成しました。

    $where = array('as_id' => $id);
    $join = array('as_types', 'as_types.as_type_id=assets.as_type');
    $query = $this->db->join($join[0], $join[1])->get_where('assets', $where);

クエリを次のように書き直します。

$where = array('registration_status_fk' => 2, 'membership.membership_type_id' => 4);
$join = array('membership', 'membership.id=members.id');
$query = $this->join($join[0], $join[1])->get_where('members', $where);

唯一の変更は 3 行目にあることに注意して$this->tbl_nameください。単純な文字列に変更する必要があります。'members'

于 2016-01-25T12:57:52.687 に答える
0

私はこれが好きだった

$where = array('registration_status_fk' => 2, 'ms.membership_type_id' => 4);
$join = array('membership', 'membership.id=members.id');

$query = $this->join('membership ms', 'ms.id = m.id')->get_where('member m', $where);
于 2021-09-05T15:50:28.823 に答える