[英]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.