Как мне сделать несколько объединений с select как на codeigniter? - PullRequest
0 голосов
/ 25 марта 2019

Я пытаюсь преобразовать следующий код в запрос php codeigniter, но мне кажется, что это не удалось.

Этот SQL отлично работает:

SELECT item_stocks_1 as item_stocks_1 FROM orders WHERE item_id_1 = 7 AND delivery_date = '2019-03-24'
UNION
SELECT item_stocks_2 as item_stocks_2 FROM orders WHERE item_id_2 = 7 AND delivery_date = '2019-03-24'
UNION
SELECT item_stocks_3 as item_stocks_3 FROM orders WHERE item_id_3 = 7 AND delivery_date = '2019-03-24'
UNION
SELECT item_stocks_4 as item_stocks_4 FROM orders WHERE item_id_4 = 7 AND delivery_date = '2019-03-24'
UNION
SELECT item_stocks_5 as item_stocks_5 FROM orders WHERE item_id_5 = 7 AND delivery_date = '2019-03-24'

но когда я конвертирую его в запрос codeigniter, вот так:

for($i=1;$i<$5;$i++){
$this->db->select('item_stocks_'.$i as 'item_stocks_'.$i);
$this->db->from('orders');
$this->db->where('item_id_', $filtered_item_id);
$this->db->where('delivery_date', '2019-03-24');
UNION
}

это всегда терпит неудачу. я пытался найти союзы на codeigniter, но они объединяют только 2 таблицы.

Вот так выглядит мой стол:

delivery_date  |   item_id_1   |   item_stocks_1  |  item_id_2   |   item_stocks_2  | item_id_3   |   item_stocks_3  | item_id_4   |   item_stocks_4  | item_id_5   |   item_stocks_5  | 

1 Ответ

0 голосов
/ 25 марта 2019

использовать начало группы для.

$this->db->select('item_stocks_'.$i as 'item_stocks_'.$i);
$this->db->from('orders');
for($i=1;$i<$5;$i++){
$this->db->or_group_start();
$this->db->where('item_id_', $filtered_item_id);
$this->db->where('delivery_date', '2019-03-24')->group_end();
}
$this->db->get();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...