Переписать запрос к базе данных в конструкторе запросов Codeigniter - PullRequest
0 голосов
/ 29 января 2019

Я пытаюсь переписать существующий запрос к базе данных в конструкторе запросов Codeigniter, как мне решить, ГДЕ СУЩЕСТВУЕТ (я думаю, что в этом проблема)?

Это оригинальный запрос, который я хочу переписать:

$query = $this->db->query('SELECT p_customer.*' .
        ' FROM p_customer' .
        ' WHERE EXISTS (' .
        'SELECT null' .
        ' FROM p_customer_group_rel' .
        ' WHERE p_customer_group_rel.customer_group_id=' . $e_id.
        ' AND p_customer_group_rel.customer_id = p_customer.id' .
        ')' .
        ' AND p_customer.deleted IS NULL' .
        ' AND p_customer.id > 0' .
        ' ORDER BY p_customer.full_name'
    );

Это то, что я получил до сих пор:

$query = $this->db
        ->select('p_customer.*')
        ->from('p_customer')
        ->where('EXISTS(SELECT null FROM p_customer_group_rel WHERE 
p_customer_group_rel.customer_group_id= ' . $e_id . ' AND 
p_customer_group_rel.customer_id = p_customer.id)')
        ->where('p_customer.deleted is NULL')
        ->where('p_customer.id > 0')
        ->order_by('p_customer.full_name');
        ->get();

Результат, который я получаю из первого запроса, - это массив объектов.Вот что я получаю из своего запроса:

SELECT p_customer.* FROM p_customer WHERE EXISTS( SELECT null FROM p_customer_group_rel WHERE p_customer_group_rel.customer_group_id= $e_id ) AND p_customer_group.port_id = p_port.id

, а это не то, что я хочу, любая помощь?:)

1 Ответ

0 голосов
/ 29 января 2019

Возможно, это не лучшее решение, но я сделал следующее, и оно работает:

$sub_q = 'SELECT null FROM p_customer_group_rel WHERE p_customer_group_rel.customer_group_id=' . $e_id . ' AND p_customer_group_rel.customer_id = p_customer.id';
$query = $this->db ->select('p_customer.*') ->from('p_customer') ->where('EXISTS(' . $sub_q . ')') ->where('p_customer.id >', 0) ->where('p_customer.deleted', NULL) ->order_by('p_customer.full_name') ->get();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...