我需要一些帮助来从多个表中提取数据(总共3个)。我知道有JOIN选项,但我还是遇到了麻烦。不确定我是否可以在一个查询中加入表来获取结果。在发布我尝试过的代码之前,我会尝试解释一下我在做什么......
我正在尝试在我的网站上制作“库存需求”部分。我有一个INVENTORY_PRODUCTS
表,我检查列UNITSINSTOCK
是否小于MINLEVEL
数量。很简单。但我还需要检查并查看该产品是否为“订单”。为此,我需要检查我的INVENTORY_ORDERS
和INVENTORY_ORDER_DETAILS
表。
订单的状态位于INVENTORY_ORDERS
表格中(如果是1
或NULL
),然后订单的详细信息位于INVENTORY_ORDER_DETAILS
。因此,如果该项目存在,我将需要SUM
。
我的HTML表格包含以下列:Product #, Min, Max, Stock, On Order and Need
。
这就是我想要使用的:
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();
}
问题是它只显示库存水平低于最低水平并且当前正在订购的物品。但是我有一些产品低于最低水平且没有订购。
希望这一切都有道理!
答案 0 :(得分:0)
$query = $this->db->query('enter sql query here');
确定您必须输入要使用的查询,但它很可能看起来更好,如果您使用的是PHP MyAdmin或者有其他方式来访问数据库,则可以对其进行测试。