亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

mysql從與其他表相關的表返回結果

mysql從與其他表相關的表返回結果

PHP
函數式編程 2022-01-02 15:39:50
我試圖顯示與許多表相關的表的結果,但我的問題是查詢只返回一個特殊的產品我想返回的產品既是特殊的產品,也是非特殊產品。我的 PHP 查詢是:$query = "SELECT DISTINCT p.product_id, p.price ,sp.date_end, f.percentage AS special_percentage , p.model, pd.name AS title, pd.description AS text, cd.name AS section, p.image, pd.tag, p.date_added AS created "                ."FROM #__mijoshop_product AS p "                ."JOIN #__mijoshop_product_special AS sp ON  p.product_id = sp.product_id "                ."JOIN #__mijoshop_flordeco_product_special_percentage AS f ON sp.product_id = f.product_id "                ."INNER JOIN #__mijoshop_product_description AS pd ON p.product_id = pd.product_id "                ."LEFT JOIN #__mijoshop_product_to_store AS ps ON p.product_id = ps.product_id "                ."LEFT JOIN #__mijoshop_product_to_category AS pc ON p.product_id = pc.product_id "                ."LEFT JOIN #__mijoshop_category_description AS cd ON (pc.category_id = cd.category_id AND cd.language_id = {$language_id}) "                ."LEFT JOIN #__mijoshop_category_to_store AS cs ON (pc.category_id = cs.category_id AND cs.store_id = {$store_id}) "                ."WHERE (LOWER(pd.name) LIKE '%" . $search_text . "%' OR                        LOWER(pd.description) LIKE '%" . $search_text . "%' OR                         LOWER(p.sku) LIKE '%" . $search_text . "%' OR ";                        if( $model ) {                            $query .= "LOWER(p.model) LIKE '%" . $search_text . "%' OR ";                        }                        $query .= "LOWER(pd.tag) LIKE '%" . $search_text . "%') "                ."AND p.status = '1' "                ."AND date(sp.date_end) >= date(NOW()) "                ."AND p.date_available <= NOW() "                ."AND ps.store_id = {$store_id} "                ."AND pd.language_id = '" . $language_id . "' "                ."GROUP BY p.product_id "                ."ORDER BY {$order_by} "                ."LIMIT ".$limit;        $db->setQuery($query);        $results = $db->loadObjectList();
查看完整描述

1 回答

?
夢里花落0921

TA貢獻1772條經驗 獲得超6個贊

更改與連接#__mijoshop_product_special,并#__mijoshop_flordeco_product_special_percentageLEFT JOIN使其不會結果僅限制于在此表的匹配產品。

此外,您在使用SELECT DISTINCT時不需要使用GROUP BY p.product_id; 由于每個產品 ID 只有 1 行,因此您無法獲得任何重復項。但是,GROUP BY當您不使用任何聚合函數(如SUM()或 )時,使用它也沒有意義COUNT()。如果所有這些表都是 1 對 1 的對應關系,那么您不應該得到任何需要使用任一選項刪除的重復項。


查看完整回答
反對 回復 2022-01-02
  • 1 回答
  • 0 關注
  • 192 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號