php - 使用 CodeIgniter 连接多个表

标签 php mysql codeigniter join

我需要一些帮助来从多个表(总共 3 个)中提取数据。我知道有 JOIN 选项,但我仍然遇到一些麻烦。不确定我是否可以在一个查询中加入表来获取结果。在发布我尝试的代码之前,我会尝试解释我在做什么...

我正在尝试在我的网站上创建“库存需求”部分。我有一个 INVENTORY_PRODUCTS 表,我在其中检查 UNITSINSTOCK 列是否小于 MINLEVEL 数量。很简单。但我还需要检查该产品是否是“按订单”。为此,我需要检查我的 INVENTORY_ORDERSINVENTORY_ORDER_DETAILS 表。

订单的状态位于 INVENTORY_ORDERS 表中(如果是 1NULL ),然后订单的详细信息位于INVENTORY_ORDER_DETAILS。因此,我需要该项目的 SUM(如果存在)。

我的 HTML 表格包含以下列:产品编号、最小值、最大值、库存、按订单和需要

这就是我正在尝试使用的:

    function get_inventory_below_need($mfctId) {

    $this->db->select('
        INVENTORY_PRODUCTS.ID, INVENTORY_PRODUCTS.PRODUCTNUMBER, INVENTORY_PRODUCTS.MINLEVEL, INVENTORY_PRODUCTS.MAXLEVEL, INVENTORY_PRODUCTS.UNITSINSTOCK,
        SUM(INVENTORY_ORDER_DETAILS.QUANTITY) AS ORDERQTY
    ');
    $this->db->from('INVENTORY_PRODUCTS');
    $this->db->join('INVENTORY_ORDER_DETAILS', 'INVENTORY_ORDER_DETAILS.PRODUCTID = INVENTORY_PRODUCTS.ID', 'INNER');
    $this->db->join('INVENTORY_ORDERS', 'INVENTORY_ORDERs.ID = INVENTORY_ORDER_DETAILS.ORDERID', 'LEFT');
    $this->db->where('INVENTORY_PRODUCTS.MANUFACTURERID', $mfctId);
    $this->db->where('INVENTORY_ORDERS.STATUS != 9');
    $this->db->where('INVENTORY_PRODUCTS.UNITSINSTOCK < INVENTORY_PRODUCTS.MINLEVEL');
    $this->db->group_by('INVENTORY_PRODUCTS.PRODUCTNUMBER');
    $this->db->order_by("INVENTORY_PRODUCTS.PRODUCTNUMBER", "asc");

    $query = $this->db->get();

    return $query->result();
}

问题是它只显示库存水平低于最低水平且当前正在订购的商品。但我有一些低于最低级别的产品并且没有被订购。

希望这一切都是有意义的!

最佳答案

$query = $this->db->query('enter sql query here');

当然,您必须键入要使用的查询,但它很可能看起来更好,如果您使用 PHP MyAdmin 或有其他方式访问数据库,您可以测试它。

关于php - 使用 CodeIgniter 连接多个表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21385650/

相关文章:

php - 查询生成器 Codeigniter 3

php - 一个查询中有两种不同的帖子类型

javascript - 如何克服NodeJS堆内存错误?

mysql - 使用mysql获取汇总每个组的总和并按元素排序

php - 如何从 codeigniter 中的 URL 获取 id?

php - 使用 php mysql 将数据插入数据库时​​比较两个表

php - 什么正则表达式会发现文件 url 是否具有特定扩展名

php - 如何从php/mysql中的同一张表中只获取一次重复值和多次重复值

php - 如何配置 Zend_Form 以使用数组表示法?

mysql - 如何从主机连接 MySQL Docker 镜像?