我目前正在使用MySQL 5.6。当我尝试导入.sql
文件并收到错误时。
这是.sql
文件:
CREATE VIEW page_view
AS (SELECT DISTINCT
res.*,
res.`finalprice` as normalprice,
(CASE WHEN (res.pricesale <> 0) THEN 1 ELSE 0 END) AS is_on_sale,
(res.`pricecatalog` - res.`finalprice`) AS catelog_price_diff,
ROUND((100-((res.`finalprice` / res.`pricecatalog`)*100))) AS catelog_price_perc_diff
FROM (
SELECT DISTINCT
p.id,p.name,p.inner_id,p.sort,p.assigned_cat_id,p.assigned_manufacturer_id,
pt.page_id, pt.lang, pt.title, pt.su_title, pt.zap_title, pt.text, pt.textmobile, pt.url_id, pt.template, pt.menu_name, pt.page_title, pt.meta_description, pt.default_child_description, pt.default_text_for_child_manufacturer_products_list, pt.meta_keywords, pt.heads_meta, pt.no_index_no_follow, pt.show_stock_progress_bar, pt.menu_display_primery, pt.menu_display_top, pt.menu_display_bottom, pt.display_on_mobile_custom_3, pt.display_on_mobile_custom_2, pt.display_on_mobile_custom_1, pt.display_on_desktop_custom_3, pt.display_on_desktop_custom_2, pt.display_on_desktop_custom_1, pt.active, pt.deleted, pt.display_bottom_slider, pt.display_on_hp,pt.sidebar_contact, pt.created, pt.updated, pt.short_desc, pt.primary_image, pt.primary_video, pt.video_gallery, pt.hp_banner_image, pt.ip_banner_image, pt.ip_banner_text, pt.ip_banner_image_mobile, pt.select_title, pt.select_text, pt.select_image, pt.select_video, pt.select_icon, pt.select_icon_mobile, pt.sidebar_icon, pt.sidebar_icon_hover, pt.tags, pt.auto_tags, pt.display_on_side, pt.use_title_as_ip_banner_text, pt.dominantBannerMobile, pt.canonical, pt.seo_canonical_id, pt.seo_canonical_custom, pt.rgb_liding_color, pt.a_must_for_enlistment,
pd.price, pd.wholesale, pd.pricecatalog, pd.pricesale, pd.quantity, pd.max_quantity, pd.min_quantity, pd.sku, pd.delivery_price, pd.zap,pd.type, pd.manufacturer_id, pd.model, pd.warranty, pd.payments, pd.related_products_cache_edited, pd.related_products_cache, pd.rivhit_id,
u.friandly_url,u.`type` AS url_type,u.real_url,t.group_id,t.type_id,t.filename,t.name as template_name,
(CASE WHEN pd.`quantity` IS NOT NULL AND pd.`quantity` <> '0' THEN 1 ELSE 0 END) AS inStock, canonical_pt.`title` as canonical_page_title,
canonical_pt.`template` as canonical_page_template,
(CASE WHEN p.`height`>0 THEN p.`height` ELSE (CASE WHEN canonical_p.`height` IS NOT NULL AND canonical_p.`height`>0 THEN canonical_p.`height` ELSE 0 END) END) AS height,
(CASE WHEN p.`width`>0 THEN p.`width` ELSE (CASE WHEN canonical_p.`width` IS NOT NULL AND canonical_p.`width`>0 THEN canonical_p.`width` ELSE 0 END) END) AS width,
(CASE WHEN p.`length`>0 THEN p.`length` ELSE (CASE WHEN canonical_p.`length` IS NOT NULL AND canonical_p.`length`>0 THEN canonical_p.`length` ELSE 0 END) END) AS length,
(CASE WHEN p.`weight`>0 THEN p.`weight` ELSE (CASE WHEN canonical_p.`weight` IS NOT NULL AND canonical_p.`weight`>0 THEN canonical_p.`weight` ELSE 0 END) END) AS weight,`mt`.`title` AS `manufacturer_title`,`mt`.`image` AS `manufacturer_image`,`mt_en`.`title` AS `manufacturer_en_title`,pc.`cat_id`,
(CASE WHEN pd.pricesale <> 0 THEN pd.pricesale ELSE pd.price END) AS finalprice
FROM `pages` as p
JOIN `pages_translations` as pt ON p.`id`=pt.`page_id`
JOIN `urls` as u ON u.`id`=pt.`url_id`
JOIN `templates` as t ON pt.`template`=t.`filename`
LEFT JOIN `products` as pd ON p.`id`=pd.`page_id`
LEFT JOIN `pages` as canonical_p ON canonical_p.`id`=pt.`canonical`
LEFT JOIN `pages_translations` as canonical_pt ON canonical_p.`id`=canonical_pt.`page_id` AND canonical_pt.`lang`=pt.`lang`
LEFT JOIN `manufacturers_translations` as mt ON pd.`manufacturer_id` = `mt`.`manufacturers_id` AND `mt`.`lang` = `pt`.`lang`
LEFT JOIN `manufacturers_translations` as mt_en ON `mt_en`.`manufacturers_id` = `pd`.`manufacturer_id` and `mt_en`.`lang` = 'en'
LEFT JOIN `product_cats` as pc ON pd.`page_id` = pc.`product_id`
ORDER BY pt.`deleted` ASC
) as res);
## products_prices_stock_view
CREATE VIEW products_prices_stock_view AS
(SELECT DISTINCT
res2.*,
(CASE WHEN (res2.pricesale <> 0 OR res2.sales_id IS NOT NULL) THEN 1 ELSE 0 END) AS is_on_sale,
(res2.`pricecatalog` - res2.`finalprice`) AS catelog_price_diff,
ROUND((100-((res2.`finalprice` / res2.`pricecatalog`)*100))) AS catelog_price_perc_diff
FROM (
SELECT DISTINCT
res.*,
(CASE
WHEN (res.`sales_discount_type`='per' AND res.`sales_apply_discount_on`='product_price' AND res.`sales_discount`>0) THEN ( (res.`normalprice` - ((res.`normalprice` * res.`sales_discount`) / 100)) )
WHEN (res.`sales_discount_type`='amt' AND res.`sales_apply_discount_on`='product_price' AND res.`sales_discount`>0) THEN ( (res.`normalprice` - res.`sales_discount`) )
WHEN (res.`sales_discount_type`='fix' AND res.`sales_apply_discount_on`='product_price' AND res.`sales_discount`<res.`normalprice`) THEN ( res.`sales_discount` )
ELSE (res.`normalprice`)
END) AS finalprice
FROM (
SELECT
pv2.id, pv2.price, pv2.wholesale, pv2.pricecatalog, pv2.pricesale, pv2.quantity, pv2.max_quantity, pv2.min_quantity, pv2.delivery_price, pv2.normalprice, st.`sales_id`,
(CASE WHEN (sap.`discount_type` IS NOT NULL AND sap.`discount_type`!='') THEN sap.`discount_type` ELSE sa.`discount_type` END) AS sales_discount_type,
(CASE WHEN (sap.`apply_discount_on` IS NOT NULL AND sap.`discount_type`!='') THEN sap.`apply_discount_on` ELSE sa.`apply_discount_on` END) AS sales_apply_discount_on,
(CASE WHEN (sap.`discount` IS NOT NULL AND sap.`discount_type`!='') THEN sap.`discount` ELSE sa.`discount` END) AS sales_discount
FROM (
SELECT DISTINCT
pv.id, pv.lang, pv.cat_id, pv.manufacturer_id, pv.price, pv.wholesale, pv.pricecatalog, pv.pricesale, pv.quantity, pv.max_quantity, pv.min_quantity, pv.delivery_price, pv.normalprice
FROM `page_view` as pv
WHERE pv.`group_id`='6' AND pv.`type_id`='3'
GROUP BY pv.`id`,pv.`lang`,pv.`cat_id` ORDER BY pv.`deleted` ASC
) as pv2
LEFT JOIN `sales_conditions` as sc ON ((`sc`.`start_date`<= CURRENT_DATE() AND `sc`.`end_date` >= CURRENT_DATE()) || `sc`.`ignor_end_start_date` = '1') AND `sc`.`is_coupon` = '0'
LEFT JOIN `sales` as s ON s.`id`=sc.`sales_id`
LEFT JOIN `sales_translations` as st ON st.`sales_id`=s.`id` AND st.`lang`=pv2.`lang` AND st.`active`='1' AND st.`deleted`='0'
LEFT JOIN `sales_actions` as sa ON sa.`sales_id`=st.`sales_id`
LEFT JOIN `sales_actions_cats` as sac ON sac.`cat_id` = pv2.`cat_id` AND sac.`sales_actions_id`=sa.`sales_id`
LEFT JOIN `sales_actions_manufacturers` as sam ON sam.`manufacturer_id` = pv2.`manufacturer_id` AND sam.`sales_actions_id`=sa.`sales_id`
LEFT JOIN `sales_actions_products` as sap ON sap.`product_id` = pv2.`id` AND sap.`sales_actions_id`=sa.`sales_id`
GROUP BY pv2.`id` ORDER BY st.`priority` DESC, s.`id` ASC, sap.`id` DESC
) as res
) as res2);
## products_sales_minimal_view
CREATE VIEW products_sales_minimal_view AS
(SELECT DISTINCT
res.`id`, res.`lang`, res.`sales_id`, res.`sales_discount_type`, res.`sales_apply_discount_on`, res.`sales_discount`,
(CASE
WHEN (res.`sales_discount_type`='per' AND res.`sales_apply_discount_on`='product_price' AND res.`sales_discount`>0) THEN ( (res.`normalprice` - ((res.`normalprice` * res.`sales_discount`) / 100)) )
WHEN (res.`sales_discount_type`='amt' AND res.`sales_apply_discount_on`='product_price' AND res.`sales_discount`>0) THEN ( (res.`normalprice` - res.`sales_discount`) )
WHEN (res.`sales_discount_type`='fix' AND res.`sales_apply_discount_on`='product_price' AND res.`sales_discount`<res.`normalprice`) THEN ( res.`sales_discount` )
ELSE (res.`normalprice`)
END) AS finalprice
FROM (
SELECT
pv2.`id`, pv2.`lang`, pv2.`normalprice`, st.`sales_id`,
(CASE WHEN (sap.`discount_type` IS NOT NULL AND sap.`discount_type`!='') THEN sap.`discount_type` ELSE sa.`discount_type` END) AS sales_discount_type,
(CASE WHEN (sap.`apply_discount_on` IS NOT NULL AND sap.`discount_type`!='') THEN sap.`apply_discount_on` ELSE sa.`apply_discount_on` END) AS sales_apply_discount_on,
(CASE WHEN (sap.`discount` IS NOT NULL AND sap.`discount_type`!='') THEN sap.`discount` ELSE sa.`discount` END) AS sales_discount
FROM (
SELECT DISTINCT
pv.`id`, pv.`lang`, pv.`cat_id`, pv.`manufacturer_id`, pv.`normalprice`
FROM `page_view` as pv
WHERE pv.`group_id`='6' AND pv.`type_id`='3'
GROUP BY pv.`id`,pv.`lang`,pv.`cat_id` ORDER BY pv.`deleted` ASC
) as pv2
LEFT JOIN `sales_conditions` as sc ON ((`sc`.`start_date`<= CURRENT_DATE() AND `sc`.`end_date` >= CURRENT_DATE()) || `sc`.`ignor_end_start_date` = '1') AND `sc`.`is_coupon` = '0'
LEFT JOIN `sales` as s ON s.`id`=sc.`sales_id`
LEFT JOIN `sales_translations` as st ON st.`sales_id`=s.`id` AND st.`lang`=pv2.`lang` AND st.`active`='1' AND st.`deleted`='0'
LEFT JOIN `sales_actions` as sa ON sa.`sales_id`=st.`sales_id`
LEFT JOIN `sales_actions_cats` as sac ON sac.`cat_id` = pv2.`cat_id` AND sac.`sales_actions_id`=sa.`sales_id`
LEFT JOIN `sales_actions_manufacturers` as sam ON sam.`manufacturer_id` = pv2.`manufacturer_id` AND sam.`sales_actions_id`=sa.`sales_id`
LEFT JOIN `sales_actions_products` as sap ON sap.`product_id` = pv2.`id` AND sap.`sales_actions_id`=sa.`sales_id`
WHERE
(
(sa.`apply_discount_on_all_product`='0' AND sa.`action_use_categories_list`='0' AND sa.`action_use_manufacturers_list`='0') OR
((sa.`apply_discount_on_all_product`='1' AND sa.`action_use_categories_list`='1' AND sa.`action_use_manufacturers_list`='1') AND (sap.`id` IS NOT NULL OR sac.`id` IS NOT NULL OR sam.`id` IS NOT NULL)) OR
((sa.`apply_discount_on_all_product`='0' AND sa.`action_use_categories_list`='1' AND sa.`action_use_manufacturers_list`='1') AND (sac.`id` IS NOT NULL OR sam.`id` IS NOT NULL)) OR
((sa.`apply_discount_on_all_product`='1' AND sa.`action_use_categories_list`='0' AND sa.`action_use_manufacturers_list`='1') AND (sap.`id` IS NOT NULL OR sam.`id` IS NOT NULL)) OR
((sa.`apply_discount_on_all_product`='1' AND sa.`action_use_categories_list`='1' AND sa.`action_use_manufacturers_list`='0') AND (sap.`id` IS NOT NULL OR sac.`id` IS NOT NULL)) OR
((sa.`apply_discount_on_all_product`='1' AND sa.`action_use_categories_list`='0' AND sa.`action_use_manufacturers_list`='0') AND (sap.`id` IS NOT NULL)) OR
((sa.`apply_discount_on_all_product`='0' AND sa.`action_use_categories_list`='1' AND sa.`action_use_manufacturers_list`='0') AND (sac.`id` IS NOT NULL)) OR
((sa.`apply_discount_on_all_product`='0' AND sa.`action_use_categories_list`='0' AND sa.`action_use_manufacturers_list`='1') AND (sam.`id` IS NOT NULL))
)
GROUP BY pv2.`id`, pv2.`lang` ORDER BY st.`priority` DESC, s.`id` ASC, sap.`id` DESC
) as res);
## page_view_with_sales
CREATE VIEW page_view_with_sales AS
(SELECT DISTINCT
res.*,
(CASE WHEN (res.pricesale <> 0 OR res.`sales_id` IS NOT NULL) THEN 1 ELSE 0 END) AS is_on_sale,
(res.`pricecatalog` - res.`finalprice`) AS catelog_price_diff,
ROUND((100-((res.`finalprice` / res.`pricecatalog`)*100))) AS catelog_price_perc_diff
FROM (
SELECT DISTINCT
p.id,p.name,p.inner_id,p.sort,p.assigned_cat_id,p.assigned_manufacturer_id,
pt.page_id, pt.lang, pt.title, pt.su_title, pt.zap_title, pt.text, pt.textmobile, pt.url_id, pt.template, pt.menu_name, pt.page_title, pt.meta_description, pt.default_child_description, pt.default_text_for_child_manufacturer_products_list, pt.meta_keywords, pt.heads_meta, pt.no_index_no_follow, pt.show_stock_progress_bar, pt.menu_display_primery, pt.menu_display_top, pt.menu_display_bottom, pt.display_on_mobile_custom_3, pt.display_on_mobile_custom_2, pt.display_on_mobile_custom_1, pt.display_on_desktop_custom_3, pt.display_on_desktop_custom_2, pt.display_on_desktop_custom_1, pt.active, pt.deleted, pt.display_bottom_slider, pt.display_on_hp,pt.sidebar_contact, pt.created, pt.updated, pt.short_desc, pt.primary_image, pt.primary_video, pt.video_gallery, pt.hp_banner_image, pt.ip_banner_image, pt.ip_banner_text, pt.ip_banner_image_mobile, pt.select_title, pt.select_text, pt.select_image, pt.select_video, pt.select_icon, pt.select_icon_mobile, pt.sidebar_icon, pt.sidebar_icon_hover, pt.tags, pt.auto_tags, pt.display_on_side, pt.use_title_as_ip_banner_text, pt.dominantBannerMobile, pt.canonical, pt.seo_canonical_id, pt.seo_canonical_custom, pt.rgb_liding_color, pt.a_must_for_enlistment,
pd.price, pd.wholesale, pd.pricecatalog, pd.pricesale, pd.quantity, pd.max_quantity, pd.min_quantity, pd.sku, pd.delivery_price, pd.zap,pd.type, pd.manufacturer_id, pd.model, pd.warranty, pd.payments, pd.related_products_cache_edited, pd.related_products_cache, pd.rivhit_id,
u.friandly_url,u.`type` AS url_type,u.real_url,t.group_id,t.type_id,t.filename,t.name as template_name,
(CASE WHEN pd.`quantity` IS NOT NULL AND pd.`quantity` <> '0' THEN 1 ELSE 0 END) AS inStock, canonical_pt.`title` as canonical_page_title,
canonical_pt.`template` as canonical_page_template,
(CASE WHEN p.`height`>0 THEN p.`height` ELSE (CASE WHEN canonical_p.`height` IS NOT NULL AND canonical_p.`height`>0 THEN canonical_p.`height` ELSE 0 END) END) AS height,
(CASE WHEN p.`width`>0 THEN p.`width` ELSE (CASE WHEN canonical_p.`width` IS NOT NULL AND canonical_p.`width`>0 THEN canonical_p.`width` ELSE 0 END) END) AS width,
(CASE WHEN p.`length`>0 THEN p.`length` ELSE (CASE WHEN canonical_p.`length` IS NOT NULL AND canonical_p.`length`>0 THEN canonical_p.`length` ELSE 0 END) END) AS length,
(CASE WHEN p.`weight`>0 THEN p.`weight` ELSE (CASE WHEN canonical_p.`weight` IS NOT NULL AND canonical_p.`weight`>0 THEN canonical_p.`weight` ELSE 0 END) END) AS weight,`mt`.`title` AS `manufacturer_title`,`mt`.`image` AS `manufacturer_image`,`mt_en`.`title` AS `manufacturer_en_title`,pc.`cat_id`,
(CASE WHEN pd.`pricesale` <> 0 THEN pd.`pricesale` ELSE pd.`price` END) AS normalprice,
(CASE
WHEN (psmv.`finalprice` IS NOT NULL) THEN (psmv.`finalprice`)
WHEN (pd.`pricesale` <> 0) THEN (pd.`pricesale`)
ELSE (pd.`price`)
END) AS finalprice,
psmv.`sales_id`, psmv.`sales_discount_type`, psmv.`sales_apply_discount_on`, psmv.`sales_discount`
FROM `pages` as p
JOIN `pages_translations` as pt ON p.`id`=pt.`page_id`
JOIN `urls` as u ON u.`id`=pt.`url_id`
JOIN `templates` as t ON pt.`template`=t.`filename`
LEFT JOIN `products` as pd ON p.`id`=pd.`page_id`
LEFT JOIN `pages` as canonical_p ON canonical_p.`id`=pt.`canonical`
LEFT JOIN `pages_translations` as canonical_pt ON canonical_p.`id`=canonical_pt.`page_id` AND canonical_pt.`lang`=pt.`lang`
LEFT JOIN `manufacturers_translations` as mt ON pd.`manufacturer_id` = `mt`.`manufacturers_id` AND `mt`.`lang` = `pt`.`lang`
LEFT JOIN `manufacturers_translations` as mt_en ON `mt_en`.`manufacturers_id` = `pd`.`manufacturer_id` and `mt_en`.`lang` = 'en'
LEFT JOIN `product_cats` as pc ON pd.`page_id` = pc.`product_id`
LEFT JOIN `products_sales_minimal_view` as psmv ON pd.`page_id` = psmv.`id`
ORDER BY pt.`deleted` ASC
) as res);
## add_get_grid
CREATE VIEW add_get_grid AS (
SELECT sq.*, (CASE WHEN (sq.`auto_created`='1' AND sq.`edited_by_admin`='0') THEN (1) ELSE (0) END) as auto_bundle,
(CASE
WHEN (sq.`discount_type`='per' AND sq.`discount_type_val`>0) THEN ( ROUND( (sq.`normal_price` - ((sq.`normal_price` * sq.`discount_type_val`) / 100)),2 ) )
WHEN (sq.`discount_type`='amt' AND sq.`discount_type_val`>0) THEN ( ROUND( (sq.`normal_price` - sq.`discount_type_val`),2 ) )
WHEN (sq.`discount_type`='fix' AND sq.`discount_type_val`<sq.`normal_price`) THEN ( ROUND( sq.`discount_type_val`,2 ) )
WHEN (sq.`discount_type`='add' AND sq.`discount_type_val`>0) THEN ( ROUND( (sq.`base_item_price` + sq.`discount_type_val`),2 ) )
ELSE ( ROUND( sq.`normal_price`,2 ) )
END) AS bundle_price
FROM (
SELECT sq2.*, ROUND(SUM(sq2.finalprice),2) as normal_price, ROUND(SUM(sq2.wholesale),2) as wholesale_price FROM (
SELECT DISTINCT ag.*, agt.`lang`, agt.`title`, agt.`active`, agt.`deleted`,
pv2.`finalprice` AS base_item_price,
pv2.`title` AS base_item_title,
(CASE WHEN (pv2.`active`='1' AND pv2.`inStock`='1') THEN 1 ELSE 0 END) AS base_item_available,
pv2.`primary_image` AS base_item_image,
IFNULL(pv.`finalprice`,0) AS finalprice,
IFNULL(pv.`wholesale`,0) AS wholesale
FROM
`add_get` as ag
JOIN `add_get_translations` as agt ON ag.`id`=agt.`add_get_id` AND agt.`deleted`='0'
LEFT JOIN `add_get_items` AS agi ON agi.`add_get_id`=ag.`id`
LEFT JOIN `page_view_with_sales_index` as pv ON (pv.`id`=agi.`item_id` || pv.`id`=ag.`base_item_id`) AND pv.`lang`=agt.`lang` AND pv.`deleted`='0'
LEFT JOIN `page_view_with_sales_index` as pv2 ON pv2.`id`=ag.`base_item_id` AND pv2.`lang`=agt.`lang` AND pv2.`deleted`='0'
GROUP BY ag.`id`, agt.`lang`, pv.`id`
) as sq2 GROUP BY sq2.id
) as sq
GROUP BY sq.`id`
ORDER BY sq.`id` DESC
);
这是错误:
ERROR 1349 (HY000) at line 1: View's SELECT contains a subquery in the FROM clause
我已经读过将MySQL升级到5.7后可能会解决的错误。我试了一下并升级到MySQL 5.7并成功导入了该文件。
但是在尝试加载网站时,它会因为错误而导致数据库错误(我正在使用VirtualBox,所以我在升级之前回到快照,所以我不记得它,但我会尝试找到错误并进行编辑。
编辑:
我从MySQL文档中了解到MySQL不支持SELECT
中的子查询,所以我在MySQL文档的引导下升级了MySQL,现在我可以成功导入.sql
文件,但我得到了这个错误:
SQL/DB Error -- [Expression #2 of SELECT list is not in GROUP BY clause and contains nonaggregated column 'db_name.pv.name' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by]
我现在也无法使用MySQL Workbench。当我被要求输入密码时,我将其留空,因为root
用户没有密码,但我收到此错误:
用户“root”从主机到localhost的服务器的连接尝试失败:3306: 用户'root'@'localhost'拒绝访问(使用密码:NO)
Cannot Connect to Database Server
Please:
1 Check that mysql is running on server localhost
2 Check that mysql is running on port 3306 (note: 3306 is the default, but this can be changed)
3 Check the root has rights to connect to localhost from your address (mysql rights define what clients can connect to the server and from which machines)
4 Make sure you are both providing a password if needed and using the correct password for localhost connecting from the host address you're connecting from
我的猜测是相关的,但我不知道如何解决它。
答案 0 :(得分:0)
这似乎是一种严格的SQL模式。
您可以通过编辑my.cnf文件来更改它
[mysqld]
sql_mode=