繁体   English   中英

左联接3表SQL OpenCart

[英]LEFT JOIN 3 tables sql OpenCart

我需要使用供应商名称将此函数连接到另一个表,这可能吗

public function getProducts($data = array()) {
      $sql = "SELECT * FROM " . DB_PREFIX . "product p LEFT JOIN " . DB_PREFIX . "product_description pd ON (p.product_id = pd.product_id) WHERE pd.language_id = '" . (int)$this->config->get('config_language_id') . "'";
  $sql = "
  SELECT c.olumns, y.ou, a.ctually, w.ant 
    FROM product p 
    JOIN product_description pd 
      ON pd.product_id = p.product_id
    JOIN vendors v
      ON v.product_id = p.product_id
   WHERE pd.language_id = ?
   ORDER 
      BY p.product_id;
   ";

现在看一下准备好的语句

测试此代码。

if(!empty($productIds) && is_array($productIds)){
            $productIdstr = implode(",",$productIds);
            $sql = "SELECT ".DB_PREFIX."product.product_id, $columns FROM " . DB_PREFIX . "product 
                    join ".DB_PREFIX."product_description on ".DB_PREFIX."product.product_id=".DB_PREFIX."product_description.product_id";
                     $sql .= "WHERE  status=1 AND product_id in ('" . $productIdstr. "')";


        }else{
            $sql = "SELECT ".DB_PREFIX."product.product_id, $columns FROM " . DB_PREFIX . "product join ".DB_PREFIX."product_description on ".DB_PREFIX."product.product_id=".DB_PREFIX."product_description.product_id";
            }
         if (!empty($data['filter_category'])) {
            $sql .= " join ".DB_PREFIX."product_to_category on ".DB_PREFIX."product_to_category.product_id=".DB_PREFIX."product.product_id AND ".DB_PREFIX."product_to_category.category_id = '" . strtolower($this->db->escape($data['filter_category'])) . "'";
            $sql .="WHERE status=1 ";
            }

        if (!empty($data['filter_name'])) {
            $sql .= " AND lower(name) LIKE '%" . strtolower($this->db->escape($data['filter_name'])) . "%'";
          }
        if (!empty($data['filter_model'])) {
            $sql .= " AND lower(model) LIKE '%" . strtolower($this->db->escape($data['filter_model'])) . "%'";
        }

        if (!empty($data['filter_threshold'])) {
         $sql .= " ORDER BY quantityalert";
           }
           $sort_data = array(
        'name',
        'model',
        'price',
        'quantity',
                    'quantityalert'
                    );

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM