Я новичок в codeigniter: как мне преобразовать этот SQL в модель codeigniter - PullRequest
0 голосов
/ 04 октября 2019
SELECT  stock_Code AS stockCode
                            , items.item_Code
                    , item_Name AS itemName
                    , item_units.name AS unitName
                    , item_Cost AS itemCost
                    , stock_Quantity AS stockQuantity
                    , supplier.supplier_Name as supplierName
            FROM items
            LEFT JOIN stocks  ON items.item_Code = stocks.item_Code
            LEFT JOIN supplier ON supplier.supplier_Code = items.supplier_Code
            LEFT JOIN item_units ON items.unit_id = item_units.unit_id
            WHERE stocks.created_at = (select max(stocks.created_at)
                                        FROM stocks
                                        WHERE stocks.item_Code = items.item_Code
                                        ) AND items.item_Code = '123'

Ответы [ 4 ]

1 голос
/ 04 октября 2019

Я просто пытаюсь помочь.

Запрос:

$this->db->select("SELECT  stock_Code AS stockCode
                        , items.item_Code
                , item_Name AS itemName
                , item_units.name AS unitName
                , item_Cost AS itemCost
                , stock_Quantity AS stockQuantity
                , supplier.supplier_Name as supplierName");
$this->db->from("items");
$this->db->join("stocks", "items.item_Code = stocks.item_Code", "left");
$this->db->join("supplier","supplier.supplier_Code = items.supplier_Code", "left");
$this->db->join("item_units","items.unit_id = item_units.unit_id","left");
$this->db->where("stocks.created_at = (select max(stocks.created_at) 
");

, если вам нужно получить данные из одной строки с объектом массива:

$this->db->get()->row();

, есливам нужно получить данные одной строки с массивом:

$this->db->get()->row_array();

, если вам нужно получить объект массива данных из нескольких строк:

$this->db->get()->result();

, если вам нужно получить данные из нескольких строкмассив:

$this->db->get()->result_array();
0 голосов
/ 04 октября 2019
public function aaa(){

  $this->db->select("SELECT stock_Code AS stockCode, 
                          items.item_Code, 
                          item_Name AS itemName, 
                          item_units.name AS unitName, 
                          item_Cost AS itemCost, 
                          stock_Quantity AS stockQuantity, 
                          supplier.supplier_Name as supplierName")
           ->from("items")
           ->join("stocks", "items.item_Code = stocks.item_Code")
           ->join("supplier","supplier.supplier_Code = items.supplier_Code")
           ->join("item_units","items.unit_id = item_units.unit_id")
           ->where("stocks.created_at = (select max(stocks.created_at) 
       ");
}
0 голосов
/ 04 октября 2019

Если вы хотите использовать модель codeigniter, то 1. создайте модель в папке вашей модели (см. Руководство по модели codeigniter) 2. напишите функцию в модели как

$sql = "Your query ";
$result = $this->db->query($sql);

, чтобы вы получили результат и вернули его. 3. в вашем контроллере загрузите класс модели и вызовите функцию, которую вы сделали, чтобы получить результат.

Однако, если вы хотите преобразовать запрос в активную запись, это еще одна проблема.

0 голосов
/ 04 октября 2019

Попробуйте: -

$sql = $this->db->query("SELECT  stock_Code AS stockCode
                            , items.item_Code
                    , item_Name AS itemName
                    , item_units.name AS unitName
                    , item_Cost AS itemCost
                    , stock_Quantity AS stockQuantity
                    , supplier.supplier_Name as supplierName
            FROM items
            LEFT JOIN stocks  ON items.item_Code = stocks.item_Code
            LEFT JOIN supplier ON supplier.supplier_Code = items.supplier_Code
            LEFT JOIN item_units ON items.unit_id = item_units.unit_id
            WHERE stocks.created_at = (select max(stocks.created_at)
                                        FROM stocks
                                        WHERE stocks.item_Code = items.item_Code
                                        ) AND items.item_Code = '123'");
        $sql->result();
        $row = $sql->row_array();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...