1
180.83 ms
SELECT product . id AS product_id , product . event AS product_event , product_trans . name AS product_name , product_info . url AS product_url , product_info . sort AS product_sort , product_active . active as product_active , product_active . active_from as product_active_from , product_active . active_to as product_active_to , category_offer . card AS category_offer_card , category_offer . reference AS product_offer_reference , category_variation . card AS category_variation_card , category_variation . reference as product_variation_reference , category_modification . card AS category_modification_card , category_modification . reference as product_modification_reference , JSON_AGG ( DISTINCT product_invariable . id ) AS invariable ,
CASE
WHEN product_modification_image . name IS NOT NULL THEN
CONCAT ( '/upload/product_modification_images' , '/' , product_modification_image . name )
WHEN product_variation_image . name IS NOT NULL THEN
CONCAT ( '/upload/product_variation_images' , '/' , product_variation_image . name )
WHEN product_offer_images . name IS NOT NULL THEN
CONCAT ( '/upload/product_offer_images' , '/' , product_offer_images . name )
WHEN product_photo . name IS NOT NULL THEN
CONCAT ( '/upload/product_photo' , '/' , product_photo . name )
ELSE NULL
END AS product_image
,
COALESCE (
product_modification_image . ext ,
product_variation_image . ext ,
product_offer_images . ext ,
product_photo . ext
) AS product_image_ext ,
COALESCE (
product_modification_image . cdn ,
product_variation_image . cdn ,
product_offer_images . cdn ,
product_photo . cdn
) AS product_image_cdn , category_info . url AS category_url , category_trans . name AS category_name ,
COALESCE (
NULLIF (MIN (product_modification_price . price ), 0 ),
NULLIF (MIN (product_variation_price . price ), 0 ),
NULLIF (MIN (product_offer_price . price ), 0 ),
NULLIF (MIN (product_price . price ), 0 ),
0
) AS product_price
,
CASE
WHEN MIN (product_modification_price . price ) IS NOT NULL
THEN product_modification_price . currency
WHEN MIN (product_variation_price . price ) IS NOT NULL
THEN product_variation_price . currency
WHEN MIN (product_offer_price . price ) IS NOT NULL
THEN product_offer_price . currency
WHEN MIN (product_price . price ) IS NOT NULL
THEN product_price . currency
ELSE NULL
END AS product_currency
, project_profile_discount . value AS project_discount FROM product INNER JOIN product_categories_product product_event_category ON product_event_category . event = product . event AND product_event_category . category IN (? ) LEFT JOIN product_trans product_trans ON product_trans . event = product . event AND product_trans . local = ? LEFT JOIN product_info product_info ON product_info . product = product . id LEFT JOIN product_active product_active ON product_active . event = product . event LEFT JOIN product_price product_price ON product_price . event = product . event AND product_price . price > 0 LEFT JOIN product_offer product_offer ON product_offer . event = product . event INNER JOIN users_profile project_profile ON
project_profile . id = ? LEFT JOIN product_category category ON category . id = product_event_category . category LEFT JOIN product_category_info category_info ON category_info . event = category . event AND category_info . active IS TRUE LEFT JOIN product_category_trans category_trans ON category_trans . event = category . event AND category_trans . local = ? LEFT JOIN product_category_offers category_offer ON category_offer . id = product_offer . category_offer LEFT JOIN product_offer_price product_offer_price ON product_offer_price . offer = product_offer . id AND product_offer_price . price > 0 LEFT JOIN product_offer_quantity product_offer_quantity ON product_offer_quantity . offer = product_offer . id LEFT JOIN product_variation product_variation ON product_variation . offer = product_offer . id LEFT JOIN product_variation_images product_variation_image ON
product_variation_image . variation = product_variation . id AND
product_variation_image . root = true
LEFT JOIN product_offer_images product_offer_images ON
product_variation_image . name IS NULL AND
product_offer_images . offer = product_offer . id AND
product_offer_images . root = true
LEFT JOIN product_photo product_photo ON
product_offer_images . name IS NULL AND
product_photo . event = product . event AND
product_photo . root = true
LEFT JOIN product_category_variation category_variation ON category_variation . id = product_variation . category_variation LEFT JOIN product_modification product_modification ON product_modification . variation = product_variation . id LEFT JOIN product_invariable product_invariable ON
product_invariable . product = product . id
AND
CASE
WHEN product_offer . const IS NOT NULL THEN product_invariable . offer = product_offer . const
ELSE product_invariable . offer IS NULL
END
AND
CASE
WHEN product_variation . const IS NOT NULL THEN product_invariable . variation = product_variation . const
ELSE product_invariable . variation IS NULL
END
AND
CASE
WHEN product_modification . const IS NOT NULL THEN product_invariable . modification = product_modification . const
ELSE product_invariable . modification IS NULL
END
LEFT JOIN product_variation_price product_variation_price ON product_variation_price . variation = product_variation . id AND product_variation_price . price > 0 LEFT JOIN product_variation_quantity product_variation_quantity ON product_variation_quantity . variation = product_variation . id LEFT JOIN product_category_modification category_modification ON category_modification . id = product_modification . category_modification LEFT JOIN product_modification_price product_modification_price ON product_modification_price . modification = product_modification . id AND product_modification_price . price > 0 LEFT JOIN product_modification_quantity product_modification_quantity ON product_modification_quantity . modification = product_modification . id LEFT JOIN product_modification_images product_modification_image ON
product_modification_image . modification = product_modification . id AND
product_modification_image . root = true
LEFT JOIN user_profile_discount project_profile_discount ON
project_profile_discount . event = project_profile . event WHERE (COALESCE (
NULLIF (product_modification_price . price , 0 ),
NULLIF (product_variation_price . price , 0 ),
NULLIF (product_offer_price . price , 0 ),
NULLIF (product_price . price , 0 ),
0
) > 0 ) AND (
CASE
WHEN product_modification_quantity . quantity IS NOT NULL THEN (product_modification_quantity . quantity - product_modification_quantity . reserve )
WHEN product_variation_quantity . quantity IS NOT NULL THEN (product_variation_quantity . quantity - product_variation_quantity . reserve )
WHEN product_offer_quantity . quantity IS NOT NULL THEN (product_offer_quantity . quantity - product_offer_quantity . reserve )
WHEN product_price . quantity IS NOT NULL THEN (product_price . quantity - product_price . reserve )
ELSE 0
END > 0
) GROUP BY product_price . currency , product_offer_price . currency , product_variation_price . currency , product_modification_price . currency , product . id , product . event , product_trans . name , product_info . url , product_info . sort , product_active . active , product_active . active_from , product_active . active_to , category_offer . card , category_offer . reference , category_variation . card , category_variation . reference , category_modification . card , category_modification . reference , product_modification_image . name , product_variation_image . name , product_offer_images . name , product_photo . name , product_modification_image . ext , product_variation_image . ext , product_offer_images . ext , product_photo . ext , product_modification_image . cdn , product_variation_image . cdn , product_offer_images . cdn , product_photo . cdn , category_info . url , category_trans . name , project_profile_discount . value ORDER BY product_info . sort DESC , SUM (product_modification_quantity . reserve ) DESC , SUM (product_variation_quantity . reserve ) DESC , SUM (product_offer_quantity . reserve ) DESC , SUM (product_price . reserve ) DESC , SUM (product_modification_quantity . quantity ) DESC , SUM (product_variation_quantity . quantity ) DESC , SUM (product_offer_quantity . quantity ) DESC , SUM (product_price . quantity ) DESC LIMIT 6
SELECT
product . id AS product_id ,
product . event AS product_event ,
product_trans . name AS product_name ,
product_info . url AS product_url ,
product_info . sort AS product_sort ,
product_active . active as product_active ,
product_active . active_from as product_active_from ,
product_active . active_to as product_active_to ,
category_offer . card AS category_offer_card ,
category_offer . reference AS product_offer_reference ,
category_variation . card AS category_variation_card ,
category_variation . reference as product_variation_reference ,
category_modification . card AS category_modification_card ,
category_modification . reference as product_modification_reference ,
JSON_AGG (DISTINCT product_invariable . id ) AS invariable ,
CASE WHEN product_modification_image . name IS NOT NULL THEN
CONCAT (
'/upload/product_modification_images' ,
'/' , product_modification_image . name
)
WHEN product_variation_image . name IS NOT NULL THEN
CONCAT (
'/upload/product_variation_images' ,
'/' , product_variation_image . name
)
WHEN product_offer_images . name IS NOT NULL THEN
CONCAT (
'/upload/product_offer_images' ,
'/' , product_offer_images . name
)
WHEN product_photo . name IS NOT NULL THEN
CONCAT (
'/upload/product_photo' , '/' , product_photo . name
)
ELSE
NULL
END AS product_image ,
COALESCE (
product_modification_image . ext ,
product_variation_image . ext , product_offer_images . ext ,
product_photo . ext
) AS product_image_ext ,
COALESCE (
product_modification_image . cdn ,
product_variation_image . cdn , product_offer_images . cdn ,
product_photo . cdn
) AS product_image_cdn ,
category_info . url AS category_url ,
category_trans . name AS category_name ,
COALESCE (
NULLIF (
MIN (
product_modification_price . price
),
0
),
NULLIF (
MIN (product_variation_price . price ),
0
),
NULLIF (
MIN (product_offer_price . price ),
0
),
NULLIF (
MIN (product_price . price ),
0
),
0
) AS product_price ,
CASE WHEN MIN (
product_modification_price . price
) IS NOT NULL THEN
product_modification_price . currency
WHEN MIN (product_variation_price . price ) IS NOT NULL THEN
product_variation_price . currency
WHEN MIN (product_offer_price . price ) IS NOT NULL THEN
product_offer_price . currency
WHEN MIN (product_price . price ) IS NOT NULL THEN
product_price . currency
ELSE
NULL
END AS product_currency ,
project_profile_discount . value AS project_discount
FROM
product
INNER JOIN product_categories_product product_event_category ON product_event_category . event = product . event
AND product_event_category . category IN (? )
LEFT JOIN product_trans product_trans ON product_trans . event = product . event
AND product_trans . local = ?
LEFT JOIN product_info product_info ON product_info . product = product . id
LEFT JOIN product_active product_active ON product_active . event = product . event
LEFT JOIN product_price product_price ON product_price . event = product . event
AND product_price . price > 0
LEFT JOIN product_offer product_offer ON product_offer . event = product . event
INNER JOIN users_profile project_profile ON project_profile . id = ?
LEFT JOIN product_category category ON category . id = product_event_category . category
LEFT JOIN product_category_info category_info ON category_info . event = category . event
AND category_info . active IS TRUE
LEFT JOIN product_category_trans category_trans ON category_trans . event = category . event
AND category_trans . local = ?
LEFT JOIN product_category_offers category_offer ON category_offer . id = product_offer . category_offer
LEFT JOIN product_offer_price product_offer_price ON product_offer_price . offer = product_offer . id
AND product_offer_price . price > 0
LEFT JOIN product_offer_quantity product_offer_quantity ON product_offer_quantity . offer = product_offer . id
LEFT JOIN product_variation product_variation ON product_variation . offer = product_offer . id
LEFT JOIN product_variation_images product_variation_image ON product_variation_image . variation = product_variation . id
AND product_variation_image . root = true
LEFT JOIN product_offer_images product_offer_images ON product_variation_image . name IS NULL
AND product_offer_images . offer = product_offer . id
AND product_offer_images . root = true
LEFT JOIN product_photo product_photo ON product_offer_images . name IS NULL
AND product_photo . event = product . event
AND product_photo . root = true
LEFT JOIN product_category_variation category_variation ON category_variation . id = product_variation . category_variation
LEFT JOIN product_modification product_modification ON product_modification . variation = product_variation . id
LEFT JOIN product_invariable product_invariable ON product_invariable . product = product . id
AND CASE WHEN product_offer . const IS NOT NULL THEN
product_invariable . offer = product_offer . const
ELSE
product_invariable . offer IS NULL
END
AND CASE WHEN product_variation . const IS NOT NULL THEN
product_invariable . variation = product_variation . const
ELSE
product_invariable . variation IS NULL
END
AND CASE WHEN product_modification . const IS NOT NULL THEN
product_invariable . modification = product_modification . const
ELSE
product_invariable . modification IS NULL
END
LEFT JOIN product_variation_price product_variation_price ON product_variation_price . variation = product_variation . id
AND product_variation_price . price > 0
LEFT JOIN product_variation_quantity product_variation_quantity ON product_variation_quantity . variation = product_variation . id
LEFT JOIN product_category_modification category_modification ON category_modification . id = product_modification . category_modification
LEFT JOIN product_modification_price product_modification_price ON product_modification_price . modification = product_modification . id
AND product_modification_price . price > 0
LEFT JOIN product_modification_quantity product_modification_quantity ON product_modification_quantity . modification = product_modification . id
LEFT JOIN product_modification_images product_modification_image ON product_modification_image . modification = product_modification . id
AND product_modification_image . root = true
LEFT JOIN user_profile_discount project_profile_discount ON project_profile_discount . event = project_profile . event
WHERE
(
COALESCE (
NULLIF (
product_modification_price . price ,
0
),
NULLIF (
product_variation_price . price , 0
),
NULLIF (product_offer_price . price , 0 ),
NULLIF (product_price . price , 0 ),
0
) > 0
)
AND (
CASE WHEN product_modification_quantity . quantity IS NOT NULL THEN
(
product_modification_quantity . quantity - product_modification_quantity . reserve
)
WHEN product_variation_quantity . quantity IS NOT NULL THEN
(
product_variation_quantity . quantity - product_variation_quantity . reserve
)
WHEN product_offer_quantity . quantity IS NOT NULL THEN
(
product_offer_quantity . quantity - product_offer_quantity . reserve
)
WHEN product_price . quantity IS NOT NULL THEN
(
product_price . quantity - product_price . reserve
)
ELSE
0
END > 0
)
GROUP BY
product_price . currency ,
product_offer_price . currency ,
product_variation_price . currency ,
product_modification_price . currency ,
product . id ,
product . event ,
product_trans . name ,
product_info . url ,
product_info . sort ,
product_active . active ,
product_active . active_from ,
product_active . active_to ,
category_offer . card ,
category_offer . reference ,
category_variation . card ,
category_variation . reference ,
category_modification . card ,
category_modification . reference ,
product_modification_image . name ,
product_variation_image . name ,
product_offer_images . name ,
product_photo . name ,
product_modification_image . ext ,
product_variation_image . ext ,
product_offer_images . ext ,
product_photo . ext ,
product_modification_image . cdn ,
product_variation_image . cdn ,
product_offer_images . cdn ,
product_photo . cdn ,
category_info . url ,
category_trans . name ,
project_profile_discount . value
ORDER BY
product_info . sort DESC ,
SUM (
product_modification_quantity . reserve
) DESC ,
SUM (
product_variation_quantity . reserve
) DESC ,
SUM (product_offer_quantity . reserve ) DESC ,
SUM (product_price . reserve ) DESC ,
SUM (
product_modification_quantity . quantity
) DESC ,
SUM (
product_variation_quantity . quantity
) DESC ,
SUM (
product_offer_quantity . quantity
) DESC ,
SUM (product_price . quantity ) DESC
LIMIT
6
Copy
SELECT product . id AS product_id , product . event AS product_event , product_trans . name AS product_name , product_info . url AS product_url , product_info . sort AS product_sort , product_active . active as product_active , product_active . active_from as product_active_from , product_active . active_to as product_active_to , category_offer . card AS category_offer_card , category_offer . reference AS product_offer_reference , category_variation . card AS category_variation_card , category_variation . reference as product_variation_reference , category_modification . card AS category_modification_card , category_modification . reference as product_modification_reference , JSON_AGG ( DISTINCT product_invariable . id ) AS invariable ,
CASE
WHEN product_modification_image . name IS NOT NULL THEN
CONCAT ( '/upload/product_modification_images' , '/' , product_modification_image . name )
WHEN product_variation_image . name IS NOT NULL THEN
CONCAT ( '/upload/product_variation_images' , '/' , product_variation_image . name )
WHEN product_offer_images . name IS NOT NULL THEN
CONCAT ( '/upload/product_offer_images' , '/' , product_offer_images . name )
WHEN product_photo . name IS NOT NULL THEN
CONCAT ( '/upload/product_photo' , '/' , product_photo . name )
ELSE NULL
END AS product_image
,
COALESCE (
product_modification_image . ext ,
product_variation_image . ext ,
product_offer_images . ext ,
product_photo . ext
) AS product_image_ext ,
COALESCE (
product_modification_image . cdn ,
product_variation_image . cdn ,
product_offer_images . cdn ,
product_photo . cdn
) AS product_image_cdn , category_info . url AS category_url , category_trans . name AS category_name ,
COALESCE (
NULLIF (MIN (product_modification_price . price ), 0 ),
NULLIF (MIN (product_variation_price . price ), 0 ),
NULLIF (MIN (product_offer_price . price ), 0 ),
NULLIF (MIN (product_price . price ), 0 ),
0
) AS product_price
,
CASE
WHEN MIN (product_modification_price . price ) IS NOT NULL
THEN product_modification_price . currency
WHEN MIN (product_variation_price . price ) IS NOT NULL
THEN product_variation_price . currency
WHEN MIN (product_offer_price . price ) IS NOT NULL
THEN product_offer_price . currency
WHEN MIN (product_price . price ) IS NOT NULL
THEN product_price . currency
ELSE NULL
END AS product_currency
, project_profile_discount . value AS project_discount FROM product INNER JOIN product_categories_product product_event_category ON product_event_category . event = product . event AND product_event_category . category IN ('01876af0-ddfc-70c3-ab25-5f85f55a9907' ) LEFT JOIN product_trans product_trans ON product_trans . event = product . event AND product_trans . local = 'ru' LEFT JOIN product_info product_info ON product_info . product = product . id LEFT JOIN product_active product_active ON product_active . event = product . event LEFT JOIN product_price product_price ON product_price . event = product . event AND product_price . price > 0 LEFT JOIN product_offer product_offer ON product_offer . event = product . event INNER JOIN users_profile project_profile ON
project_profile . id = '01982ecf-0a6a-79e5-967b-4992d1b836bb' LEFT JOIN product_category category ON category . id = product_event_category . category LEFT JOIN product_category_info category_info ON category_info . event = category . event AND category_info . active IS TRUE LEFT JOIN product_category_trans category_trans ON category_trans . event = category . event AND category_trans . local = 'ru' LEFT JOIN product_category_offers category_offer ON category_offer . id = product_offer . category_offer LEFT JOIN product_offer_price product_offer_price ON product_offer_price . offer = product_offer . id AND product_offer_price . price > 0 LEFT JOIN product_offer_quantity product_offer_quantity ON product_offer_quantity . offer = product_offer . id LEFT JOIN product_variation product_variation ON product_variation . offer = product_offer . id LEFT JOIN product_variation_images product_variation_image ON
product_variation_image . variation = product_variation . id AND
product_variation_image . root = true
LEFT JOIN product_offer_images product_offer_images ON
product_variation_image . name IS NULL AND
product_offer_images . offer = product_offer . id AND
product_offer_images . root = true
LEFT JOIN product_photo product_photo ON
product_offer_images . name IS NULL AND
product_photo . event = product . event AND
product_photo . root = true
LEFT JOIN product_category_variation category_variation ON category_variation . id = product_variation . category_variation LEFT JOIN product_modification product_modification ON product_modification . variation = product_variation . id LEFT JOIN product_invariable product_invariable ON
product_invariable . product = product . id
AND
CASE
WHEN product_offer . const IS NOT NULL THEN product_invariable . offer = product_offer . const
ELSE product_invariable . offer IS NULL
END
AND
CASE
WHEN product_variation . const IS NOT NULL THEN product_invariable . variation = product_variation . const
ELSE product_invariable . variation IS NULL
END
AND
CASE
WHEN product_modification . const IS NOT NULL THEN product_invariable . modification = product_modification . const
ELSE product_invariable . modification IS NULL
END
LEFT JOIN product_variation_price product_variation_price ON product_variation_price . variation = product_variation . id AND product_variation_price . price > 0 LEFT JOIN product_variation_quantity product_variation_quantity ON product_variation_quantity . variation = product_variation . id LEFT JOIN product_category_modification category_modification ON category_modification . id = product_modification . category_modification LEFT JOIN product_modification_price product_modification_price ON product_modification_price . modification = product_modification . id AND product_modification_price . price > 0 LEFT JOIN product_modification_quantity product_modification_quantity ON product_modification_quantity . modification = product_modification . id LEFT JOIN product_modification_images product_modification_image ON
product_modification_image . modification = product_modification . id AND
product_modification_image . root = true
LEFT JOIN user_profile_discount project_profile_discount ON
project_profile_discount . event = project_profile . event WHERE (COALESCE (
NULLIF (product_modification_price . price , 0 ),
NULLIF (product_variation_price . price , 0 ),
NULLIF (product_offer_price . price , 0 ),
NULLIF (product_price . price , 0 ),
0
) > 0 ) AND (
CASE
WHEN product_modification_quantity . quantity IS NOT NULL THEN (product_modification_quantity . quantity - product_modification_quantity . reserve )
WHEN product_variation_quantity . quantity IS NOT NULL THEN (product_variation_quantity . quantity - product_variation_quantity . reserve )
WHEN product_offer_quantity . quantity IS NOT NULL THEN (product_offer_quantity . quantity - product_offer_quantity . reserve )
WHEN product_price . quantity IS NOT NULL THEN (product_price . quantity - product_price . reserve )
ELSE 0
END > 0
) GROUP BY product_price . currency , product_offer_price . currency , product_variation_price . currency , product_modification_price . currency , product . id , product . event , product_trans . name , product_info . url , product_info . sort , product_active . active , product_active . active_from , product_active . active_to , category_offer . card , category_offer . reference , category_variation . card , category_variation . reference , category_modification . card , category_modification . reference , product_modification_image . name , product_variation_image . name , product_offer_images . name , product_photo . name , product_modification_image . ext , product_variation_image . ext , product_offer_images . ext , product_photo . ext , product_modification_image . cdn , product_variation_image . cdn , product_offer_images . cdn , product_photo . cdn , category_info . url , category_trans . name , project_profile_discount . value ORDER BY product_info . sort DESC , SUM (product_modification_quantity . reserve ) DESC , SUM (product_variation_quantity . reserve ) DESC , SUM (product_offer_quantity . reserve ) DESC , SUM (product_price . reserve ) DESC , SUM (product_modification_quantity . quantity ) DESC , SUM (product_variation_quantity . quantity ) DESC , SUM (product_offer_quantity . quantity ) DESC , SUM (product_price . quantity ) DESC LIMIT 6 ;
Copy
2
127.86 ms
SELECT product . id AS product_id , product . event AS product_event , product_trans . name AS product_name , product_info . url AS product_url , product_info . sort AS product_sort , product_active . active as product_active , product_active . active_from as product_active_from , product_active . active_to as product_active_to , category_offer . card AS category_offer_card , category_offer . reference AS product_offer_reference , category_variation . card AS category_variation_card , category_variation . reference as product_variation_reference , category_modification . card AS category_modification_card , category_modification . reference as product_modification_reference , JSON_AGG ( DISTINCT product_invariable . id ) AS invariable ,
CASE
WHEN product_modification_image . name IS NOT NULL THEN
CONCAT ( '/upload/product_modification_images' , '/' , product_modification_image . name )
WHEN product_variation_image . name IS NOT NULL THEN
CONCAT ( '/upload/product_variation_images' , '/' , product_variation_image . name )
WHEN product_offer_images . name IS NOT NULL THEN
CONCAT ( '/upload/product_offer_images' , '/' , product_offer_images . name )
WHEN product_photo . name IS NOT NULL THEN
CONCAT ( '/upload/product_photo' , '/' , product_photo . name )
ELSE NULL
END AS product_image
,
COALESCE (
product_modification_image . ext ,
product_variation_image . ext ,
product_offer_images . ext ,
product_photo . ext
) AS product_image_ext ,
COALESCE (
product_modification_image . cdn ,
product_variation_image . cdn ,
product_offer_images . cdn ,
product_photo . cdn
) AS product_image_cdn , category_info . url AS category_url , category_trans . name AS category_name ,
COALESCE (
NULLIF (MIN (product_modification_price . price ), 0 ),
NULLIF (MIN (product_variation_price . price ), 0 ),
NULLIF (MIN (product_offer_price . price ), 0 ),
NULLIF (MIN (product_price . price ), 0 ),
0
) AS product_price
,
CASE
WHEN MIN (product_modification_price . price ) IS NOT NULL
THEN product_modification_price . currency
WHEN MIN (product_variation_price . price ) IS NOT NULL
THEN product_variation_price . currency
WHEN MIN (product_offer_price . price ) IS NOT NULL
THEN product_offer_price . currency
WHEN MIN (product_price . price ) IS NOT NULL
THEN product_price . currency
ELSE NULL
END AS product_currency
, project_profile_discount . value AS project_discount FROM product INNER JOIN product_categories_product product_event_category ON product_event_category . event = product . event AND product_event_category . category IN (? ) LEFT JOIN product_trans product_trans ON product_trans . event = product . event AND product_trans . local = ? LEFT JOIN product_info product_info ON product_info . product = product . id LEFT JOIN product_active product_active ON product_active . event = product . event LEFT JOIN product_price product_price ON product_price . event = product . event AND product_price . price > 0 LEFT JOIN product_offer product_offer ON product_offer . event = product . event INNER JOIN users_profile project_profile ON
project_profile . id = ? LEFT JOIN product_category category ON category . id = product_event_category . category LEFT JOIN product_category_info category_info ON category_info . event = category . event AND category_info . active IS TRUE LEFT JOIN product_category_trans category_trans ON category_trans . event = category . event AND category_trans . local = ? LEFT JOIN product_category_offers category_offer ON category_offer . id = product_offer . category_offer LEFT JOIN product_offer_price product_offer_price ON product_offer_price . offer = product_offer . id AND product_offer_price . price > 0 LEFT JOIN product_offer_quantity product_offer_quantity ON product_offer_quantity . offer = product_offer . id LEFT JOIN product_variation product_variation ON product_variation . offer = product_offer . id LEFT JOIN product_variation_images product_variation_image ON
product_variation_image . variation = product_variation . id AND
product_variation_image . root = true
LEFT JOIN product_offer_images product_offer_images ON
product_variation_image . name IS NULL AND
product_offer_images . offer = product_offer . id AND
product_offer_images . root = true
LEFT JOIN product_photo product_photo ON
product_offer_images . name IS NULL AND
product_photo . event = product . event AND
product_photo . root = true
LEFT JOIN product_category_variation category_variation ON category_variation . id = product_variation . category_variation LEFT JOIN product_modification product_modification ON product_modification . variation = product_variation . id LEFT JOIN product_invariable product_invariable ON
product_invariable . product = product . id
AND
CASE
WHEN product_offer . const IS NOT NULL THEN product_invariable . offer = product_offer . const
ELSE product_invariable . offer IS NULL
END
AND
CASE
WHEN product_variation . const IS NOT NULL THEN product_invariable . variation = product_variation . const
ELSE product_invariable . variation IS NULL
END
AND
CASE
WHEN product_modification . const IS NOT NULL THEN product_invariable . modification = product_modification . const
ELSE product_invariable . modification IS NULL
END
LEFT JOIN product_variation_price product_variation_price ON product_variation_price . variation = product_variation . id AND product_variation_price . price > 0 LEFT JOIN product_variation_quantity product_variation_quantity ON product_variation_quantity . variation = product_variation . id LEFT JOIN product_category_modification category_modification ON category_modification . id = product_modification . category_modification LEFT JOIN product_modification_price product_modification_price ON product_modification_price . modification = product_modification . id AND product_modification_price . price > 0 LEFT JOIN product_modification_quantity product_modification_quantity ON product_modification_quantity . modification = product_modification . id LEFT JOIN product_modification_images product_modification_image ON
product_modification_image . modification = product_modification . id AND
product_modification_image . root = true
LEFT JOIN user_profile_discount project_profile_discount ON
project_profile_discount . event = project_profile . event WHERE (COALESCE (
NULLIF (product_modification_price . price , 0 ),
NULLIF (product_variation_price . price , 0 ),
NULLIF (product_offer_price . price , 0 ),
NULLIF (product_price . price , 0 ),
0
) > 0 ) AND (
CASE
WHEN product_modification_quantity . quantity IS NOT NULL THEN (product_modification_quantity . quantity - product_modification_quantity . reserve )
WHEN product_variation_quantity . quantity IS NOT NULL THEN (product_variation_quantity . quantity - product_variation_quantity . reserve )
WHEN product_offer_quantity . quantity IS NOT NULL THEN (product_offer_quantity . quantity - product_offer_quantity . reserve )
WHEN product_price . quantity IS NOT NULL THEN (product_price . quantity - product_price . reserve )
ELSE 0
END > 0
) GROUP BY product_price . currency , product_offer_price . currency , product_variation_price . currency , product_modification_price . currency , product . id , product . event , product_trans . name , product_info . url , product_info . sort , product_active . active , product_active . active_from , product_active . active_to , category_offer . card , category_offer . reference , category_variation . card , category_variation . reference , category_modification . card , category_modification . reference , product_modification_image . name , product_variation_image . name , product_offer_images . name , product_photo . name , product_modification_image . ext , product_variation_image . ext , product_offer_images . ext , product_photo . ext , product_modification_image . cdn , product_variation_image . cdn , product_offer_images . cdn , product_photo . cdn , category_info . url , category_trans . name , project_profile_discount . value ORDER BY product_info . sort DESC , SUM (product_modification_quantity . reserve ) DESC , SUM (product_variation_quantity . reserve ) DESC , SUM (product_offer_quantity . reserve ) DESC , SUM (product_price . reserve ) DESC , SUM (product_modification_quantity . quantity ) DESC , SUM (product_variation_quantity . quantity ) DESC , SUM (product_offer_quantity . quantity ) DESC , SUM (product_price . quantity ) DESC LIMIT 6
SELECT
product . id AS product_id ,
product . event AS product_event ,
product_trans . name AS product_name ,
product_info . url AS product_url ,
product_info . sort AS product_sort ,
product_active . active as product_active ,
product_active . active_from as product_active_from ,
product_active . active_to as product_active_to ,
category_offer . card AS category_offer_card ,
category_offer . reference AS product_offer_reference ,
category_variation . card AS category_variation_card ,
category_variation . reference as product_variation_reference ,
category_modification . card AS category_modification_card ,
category_modification . reference as product_modification_reference ,
JSON_AGG (DISTINCT product_invariable . id ) AS invariable ,
CASE WHEN product_modification_image . name IS NOT NULL THEN
CONCAT (
'/upload/product_modification_images' ,
'/' , product_modification_image . name
)
WHEN product_variation_image . name IS NOT NULL THEN
CONCAT (
'/upload/product_variation_images' ,
'/' , product_variation_image . name
)
WHEN product_offer_images . name IS NOT NULL THEN
CONCAT (
'/upload/product_offer_images' ,
'/' , product_offer_images . name
)
WHEN product_photo . name IS NOT NULL THEN
CONCAT (
'/upload/product_photo' , '/' , product_photo . name
)
ELSE
NULL
END AS product_image ,
COALESCE (
product_modification_image . ext ,
product_variation_image . ext , product_offer_images . ext ,
product_photo . ext
) AS product_image_ext ,
COALESCE (
product_modification_image . cdn ,
product_variation_image . cdn , product_offer_images . cdn ,
product_photo . cdn
) AS product_image_cdn ,
category_info . url AS category_url ,
category_trans . name AS category_name ,
COALESCE (
NULLIF (
MIN (
product_modification_price . price
),
0
),
NULLIF (
MIN (product_variation_price . price ),
0
),
NULLIF (
MIN (product_offer_price . price ),
0
),
NULLIF (
MIN (product_price . price ),
0
),
0
) AS product_price ,
CASE WHEN MIN (
product_modification_price . price
) IS NOT NULL THEN
product_modification_price . currency
WHEN MIN (product_variation_price . price ) IS NOT NULL THEN
product_variation_price . currency
WHEN MIN (product_offer_price . price ) IS NOT NULL THEN
product_offer_price . currency
WHEN MIN (product_price . price ) IS NOT NULL THEN
product_price . currency
ELSE
NULL
END AS product_currency ,
project_profile_discount . value AS project_discount
FROM
product
INNER JOIN product_categories_product product_event_category ON product_event_category . event = product . event
AND product_event_category . category IN (? )
LEFT JOIN product_trans product_trans ON product_trans . event = product . event
AND product_trans . local = ?
LEFT JOIN product_info product_info ON product_info . product = product . id
LEFT JOIN product_active product_active ON product_active . event = product . event
LEFT JOIN product_price product_price ON product_price . event = product . event
AND product_price . price > 0
LEFT JOIN product_offer product_offer ON product_offer . event = product . event
INNER JOIN users_profile project_profile ON project_profile . id = ?
LEFT JOIN product_category category ON category . id = product_event_category . category
LEFT JOIN product_category_info category_info ON category_info . event = category . event
AND category_info . active IS TRUE
LEFT JOIN product_category_trans category_trans ON category_trans . event = category . event
AND category_trans . local = ?
LEFT JOIN product_category_offers category_offer ON category_offer . id = product_offer . category_offer
LEFT JOIN product_offer_price product_offer_price ON product_offer_price . offer = product_offer . id
AND product_offer_price . price > 0
LEFT JOIN product_offer_quantity product_offer_quantity ON product_offer_quantity . offer = product_offer . id
LEFT JOIN product_variation product_variation ON product_variation . offer = product_offer . id
LEFT JOIN product_variation_images product_variation_image ON product_variation_image . variation = product_variation . id
AND product_variation_image . root = true
LEFT JOIN product_offer_images product_offer_images ON product_variation_image . name IS NULL
AND product_offer_images . offer = product_offer . id
AND product_offer_images . root = true
LEFT JOIN product_photo product_photo ON product_offer_images . name IS NULL
AND product_photo . event = product . event
AND product_photo . root = true
LEFT JOIN product_category_variation category_variation ON category_variation . id = product_variation . category_variation
LEFT JOIN product_modification product_modification ON product_modification . variation = product_variation . id
LEFT JOIN product_invariable product_invariable ON product_invariable . product = product . id
AND CASE WHEN product_offer . const IS NOT NULL THEN
product_invariable . offer = product_offer . const
ELSE
product_invariable . offer IS NULL
END
AND CASE WHEN product_variation . const IS NOT NULL THEN
product_invariable . variation = product_variation . const
ELSE
product_invariable . variation IS NULL
END
AND CASE WHEN product_modification . const IS NOT NULL THEN
product_invariable . modification = product_modification . const
ELSE
product_invariable . modification IS NULL
END
LEFT JOIN product_variation_price product_variation_price ON product_variation_price . variation = product_variation . id
AND product_variation_price . price > 0
LEFT JOIN product_variation_quantity product_variation_quantity ON product_variation_quantity . variation = product_variation . id
LEFT JOIN product_category_modification category_modification ON category_modification . id = product_modification . category_modification
LEFT JOIN product_modification_price product_modification_price ON product_modification_price . modification = product_modification . id
AND product_modification_price . price > 0
LEFT JOIN product_modification_quantity product_modification_quantity ON product_modification_quantity . modification = product_modification . id
LEFT JOIN product_modification_images product_modification_image ON product_modification_image . modification = product_modification . id
AND product_modification_image . root = true
LEFT JOIN user_profile_discount project_profile_discount ON project_profile_discount . event = project_profile . event
WHERE
(
COALESCE (
NULLIF (
product_modification_price . price ,
0
),
NULLIF (
product_variation_price . price , 0
),
NULLIF (product_offer_price . price , 0 ),
NULLIF (product_price . price , 0 ),
0
) > 0
)
AND (
CASE WHEN product_modification_quantity . quantity IS NOT NULL THEN
(
product_modification_quantity . quantity - product_modification_quantity . reserve
)
WHEN product_variation_quantity . quantity IS NOT NULL THEN
(
product_variation_quantity . quantity - product_variation_quantity . reserve
)
WHEN product_offer_quantity . quantity IS NOT NULL THEN
(
product_offer_quantity . quantity - product_offer_quantity . reserve
)
WHEN product_price . quantity IS NOT NULL THEN
(
product_price . quantity - product_price . reserve
)
ELSE
0
END > 0
)
GROUP BY
product_price . currency ,
product_offer_price . currency ,
product_variation_price . currency ,
product_modification_price . currency ,
product . id ,
product . event ,
product_trans . name ,
product_info . url ,
product_info . sort ,
product_active . active ,
product_active . active_from ,
product_active . active_to ,
category_offer . card ,
category_offer . reference ,
category_variation . card ,
category_variation . reference ,
category_modification . card ,
category_modification . reference ,
product_modification_image . name ,
product_variation_image . name ,
product_offer_images . name ,
product_photo . name ,
product_modification_image . ext ,
product_variation_image . ext ,
product_offer_images . ext ,
product_photo . ext ,
product_modification_image . cdn ,
product_variation_image . cdn ,
product_offer_images . cdn ,
product_photo . cdn ,
category_info . url ,
category_trans . name ,
project_profile_discount . value
ORDER BY
product_info . sort DESC ,
SUM (
product_modification_quantity . reserve
) DESC ,
SUM (
product_variation_quantity . reserve
) DESC ,
SUM (product_offer_quantity . reserve ) DESC ,
SUM (product_price . reserve ) DESC ,
SUM (
product_modification_quantity . quantity
) DESC ,
SUM (
product_variation_quantity . quantity
) DESC ,
SUM (
product_offer_quantity . quantity
) DESC ,
SUM (product_price . quantity ) DESC
LIMIT
6
Copy
SELECT product . id AS product_id , product . event AS product_event , product_trans . name AS product_name , product_info . url AS product_url , product_info . sort AS product_sort , product_active . active as product_active , product_active . active_from as product_active_from , product_active . active_to as product_active_to , category_offer . card AS category_offer_card , category_offer . reference AS product_offer_reference , category_variation . card AS category_variation_card , category_variation . reference as product_variation_reference , category_modification . card AS category_modification_card , category_modification . reference as product_modification_reference , JSON_AGG ( DISTINCT product_invariable . id ) AS invariable ,
CASE
WHEN product_modification_image . name IS NOT NULL THEN
CONCAT ( '/upload/product_modification_images' , '/' , product_modification_image . name )
WHEN product_variation_image . name IS NOT NULL THEN
CONCAT ( '/upload/product_variation_images' , '/' , product_variation_image . name )
WHEN product_offer_images . name IS NOT NULL THEN
CONCAT ( '/upload/product_offer_images' , '/' , product_offer_images . name )
WHEN product_photo . name IS NOT NULL THEN
CONCAT ( '/upload/product_photo' , '/' , product_photo . name )
ELSE NULL
END AS product_image
,
COALESCE (
product_modification_image . ext ,
product_variation_image . ext ,
product_offer_images . ext ,
product_photo . ext
) AS product_image_ext ,
COALESCE (
product_modification_image . cdn ,
product_variation_image . cdn ,
product_offer_images . cdn ,
product_photo . cdn
) AS product_image_cdn , category_info . url AS category_url , category_trans . name AS category_name ,
COALESCE (
NULLIF (MIN (product_modification_price . price ), 0 ),
NULLIF (MIN (product_variation_price . price ), 0 ),
NULLIF (MIN (product_offer_price . price ), 0 ),
NULLIF (MIN (product_price . price ), 0 ),
0
) AS product_price
,
CASE
WHEN MIN (product_modification_price . price ) IS NOT NULL
THEN product_modification_price . currency
WHEN MIN (product_variation_price . price ) IS NOT NULL
THEN product_variation_price . currency
WHEN MIN (product_offer_price . price ) IS NOT NULL
THEN product_offer_price . currency
WHEN MIN (product_price . price ) IS NOT NULL
THEN product_price . currency
ELSE NULL
END AS product_currency
, project_profile_discount . value AS project_discount FROM product INNER JOIN product_categories_product product_event_category ON product_event_category . event = product . event AND product_event_category . category IN ('018f4f55-53d4-7b35-bda7-fad6b852f2f6' ) LEFT JOIN product_trans product_trans ON product_trans . event = product . event AND product_trans . local = 'ru' LEFT JOIN product_info product_info ON product_info . product = product . id LEFT JOIN product_active product_active ON product_active . event = product . event LEFT JOIN product_price product_price ON product_price . event = product . event AND product_price . price > 0 LEFT JOIN product_offer product_offer ON product_offer . event = product . event INNER JOIN users_profile project_profile ON
project_profile . id = '01982ecf-0a6a-79e5-967b-4992d1b836bb' LEFT JOIN product_category category ON category . id = product_event_category . category LEFT JOIN product_category_info category_info ON category_info . event = category . event AND category_info . active IS TRUE LEFT JOIN product_category_trans category_trans ON category_trans . event = category . event AND category_trans . local = 'ru' LEFT JOIN product_category_offers category_offer ON category_offer . id = product_offer . category_offer LEFT JOIN product_offer_price product_offer_price ON product_offer_price . offer = product_offer . id AND product_offer_price . price > 0 LEFT JOIN product_offer_quantity product_offer_quantity ON product_offer_quantity . offer = product_offer . id LEFT JOIN product_variation product_variation ON product_variation . offer = product_offer . id LEFT JOIN product_variation_images product_variation_image ON
product_variation_image . variation = product_variation . id AND
product_variation_image . root = true
LEFT JOIN product_offer_images product_offer_images ON
product_variation_image . name IS NULL AND
product_offer_images . offer = product_offer . id AND
product_offer_images . root = true
LEFT JOIN product_photo product_photo ON
product_offer_images . name IS NULL AND
product_photo . event = product . event AND
product_photo . root = true
LEFT JOIN product_category_variation category_variation ON category_variation . id = product_variation . category_variation LEFT JOIN product_modification product_modification ON product_modification . variation = product_variation . id LEFT JOIN product_invariable product_invariable ON
product_invariable . product = product . id
AND
CASE
WHEN product_offer . const IS NOT NULL THEN product_invariable . offer = product_offer . const
ELSE product_invariable . offer IS NULL
END
AND
CASE
WHEN product_variation . const IS NOT NULL THEN product_invariable . variation = product_variation . const
ELSE product_invariable . variation IS NULL
END
AND
CASE
WHEN product_modification . const IS NOT NULL THEN product_invariable . modification = product_modification . const
ELSE product_invariable . modification IS NULL
END
LEFT JOIN product_variation_price product_variation_price ON product_variation_price . variation = product_variation . id AND product_variation_price . price > 0 LEFT JOIN product_variation_quantity product_variation_quantity ON product_variation_quantity . variation = product_variation . id LEFT JOIN product_category_modification category_modification ON category_modification . id = product_modification . category_modification LEFT JOIN product_modification_price product_modification_price ON product_modification_price . modification = product_modification . id AND product_modification_price . price > 0 LEFT JOIN product_modification_quantity product_modification_quantity ON product_modification_quantity . modification = product_modification . id LEFT JOIN product_modification_images product_modification_image ON
product_modification_image . modification = product_modification . id AND
product_modification_image . root = true
LEFT JOIN user_profile_discount project_profile_discount ON
project_profile_discount . event = project_profile . event WHERE (COALESCE (
NULLIF (product_modification_price . price , 0 ),
NULLIF (product_variation_price . price , 0 ),
NULLIF (product_offer_price . price , 0 ),
NULLIF (product_price . price , 0 ),
0
) > 0 ) AND (
CASE
WHEN product_modification_quantity . quantity IS NOT NULL THEN (product_modification_quantity . quantity - product_modification_quantity . reserve )
WHEN product_variation_quantity . quantity IS NOT NULL THEN (product_variation_quantity . quantity - product_variation_quantity . reserve )
WHEN product_offer_quantity . quantity IS NOT NULL THEN (product_offer_quantity . quantity - product_offer_quantity . reserve )
WHEN product_price . quantity IS NOT NULL THEN (product_price . quantity - product_price . reserve )
ELSE 0
END > 0
) GROUP BY product_price . currency , product_offer_price . currency , product_variation_price . currency , product_modification_price . currency , product . id , product . event , product_trans . name , product_info . url , product_info . sort , product_active . active , product_active . active_from , product_active . active_to , category_offer . card , category_offer . reference , category_variation . card , category_variation . reference , category_modification . card , category_modification . reference , product_modification_image . name , product_variation_image . name , product_offer_images . name , product_photo . name , product_modification_image . ext , product_variation_image . ext , product_offer_images . ext , product_photo . ext , product_modification_image . cdn , product_variation_image . cdn , product_offer_images . cdn , product_photo . cdn , category_info . url , category_trans . name , project_profile_discount . value ORDER BY product_info . sort DESC , SUM (product_modification_quantity . reserve ) DESC , SUM (product_variation_quantity . reserve ) DESC , SUM (product_offer_quantity . reserve ) DESC , SUM (product_price . reserve ) DESC , SUM (product_modification_quantity . quantity ) DESC , SUM (product_variation_quantity . quantity ) DESC , SUM (product_offer_quantity . quantity ) DESC , SUM (product_price . quantity ) DESC LIMIT 6 ;
Copy
3
111.03 ms
SELECT product . id AS product_id , product . event AS product_event , product_trans . name AS product_name , product_info . url AS product_url , product_info . sort AS product_sort , product_active . active as product_active , product_active . active_from as product_active_from , product_active . active_to as product_active_to , category_offer . card AS category_offer_card , category_offer . reference AS product_offer_reference , category_variation . card AS category_variation_card , category_variation . reference as product_variation_reference , category_modification . card AS category_modification_card , category_modification . reference as product_modification_reference , JSON_AGG ( DISTINCT product_invariable . id ) AS invariable ,
CASE
WHEN product_modification_image . name IS NOT NULL THEN
CONCAT ( '/upload/product_modification_images' , '/' , product_modification_image . name )
WHEN product_variation_image . name IS NOT NULL THEN
CONCAT ( '/upload/product_variation_images' , '/' , product_variation_image . name )
WHEN product_offer_images . name IS NOT NULL THEN
CONCAT ( '/upload/product_offer_images' , '/' , product_offer_images . name )
WHEN product_photo . name IS NOT NULL THEN
CONCAT ( '/upload/product_photo' , '/' , product_photo . name )
ELSE NULL
END AS product_image
,
COALESCE (
product_modification_image . ext ,
product_variation_image . ext ,
product_offer_images . ext ,
product_photo . ext
) AS product_image_ext ,
COALESCE (
product_modification_image . cdn ,
product_variation_image . cdn ,
product_offer_images . cdn ,
product_photo . cdn
) AS product_image_cdn , category_info . url AS category_url , category_trans . name AS category_name ,
COALESCE (
NULLIF (MIN (product_modification_price . price ), 0 ),
NULLIF (MIN (product_variation_price . price ), 0 ),
NULLIF (MIN (product_offer_price . price ), 0 ),
NULLIF (MIN (product_price . price ), 0 ),
0
) AS product_price
,
CASE
WHEN MIN (product_modification_price . price ) IS NOT NULL
THEN product_modification_price . currency
WHEN MIN (product_variation_price . price ) IS NOT NULL
THEN product_variation_price . currency
WHEN MIN (product_offer_price . price ) IS NOT NULL
THEN product_offer_price . currency
WHEN MIN (product_price . price ) IS NOT NULL
THEN product_price . currency
ELSE NULL
END AS product_currency
, project_profile_discount . value AS project_discount FROM product INNER JOIN product_categories_product product_event_category ON product_event_category . event = product . event AND product_event_category . category IN (? ) LEFT JOIN product_trans product_trans ON product_trans . event = product . event AND product_trans . local = ? LEFT JOIN product_info product_info ON product_info . product = product . id LEFT JOIN product_active product_active ON product_active . event = product . event LEFT JOIN product_price product_price ON product_price . event = product . event AND product_price . price > 0 LEFT JOIN product_offer product_offer ON product_offer . event = product . event INNER JOIN users_profile project_profile ON
project_profile . id = ? LEFT JOIN product_category category ON category . id = product_event_category . category LEFT JOIN product_category_info category_info ON category_info . event = category . event AND category_info . active IS TRUE LEFT JOIN product_category_trans category_trans ON category_trans . event = category . event AND category_trans . local = ? LEFT JOIN product_category_offers category_offer ON category_offer . id = product_offer . category_offer LEFT JOIN product_offer_price product_offer_price ON product_offer_price . offer = product_offer . id AND product_offer_price . price > 0 LEFT JOIN product_offer_quantity product_offer_quantity ON product_offer_quantity . offer = product_offer . id LEFT JOIN product_variation product_variation ON product_variation . offer = product_offer . id LEFT JOIN product_variation_images product_variation_image ON
product_variation_image . variation = product_variation . id AND
product_variation_image . root = true
LEFT JOIN product_offer_images product_offer_images ON
product_variation_image . name IS NULL AND
product_offer_images . offer = product_offer . id AND
product_offer_images . root = true
LEFT JOIN product_photo product_photo ON
product_offer_images . name IS NULL AND
product_photo . event = product . event AND
product_photo . root = true
LEFT JOIN product_category_variation category_variation ON category_variation . id = product_variation . category_variation LEFT JOIN product_modification product_modification ON product_modification . variation = product_variation . id LEFT JOIN product_invariable product_invariable ON
product_invariable . product = product . id
AND
CASE
WHEN product_offer . const IS NOT NULL THEN product_invariable . offer = product_offer . const
ELSE product_invariable . offer IS NULL
END
AND
CASE
WHEN product_variation . const IS NOT NULL THEN product_invariable . variation = product_variation . const
ELSE product_invariable . variation IS NULL
END
AND
CASE
WHEN product_modification . const IS NOT NULL THEN product_invariable . modification = product_modification . const
ELSE product_invariable . modification IS NULL
END
LEFT JOIN product_variation_price product_variation_price ON product_variation_price . variation = product_variation . id AND product_variation_price . price > 0 LEFT JOIN product_variation_quantity product_variation_quantity ON product_variation_quantity . variation = product_variation . id LEFT JOIN product_category_modification category_modification ON category_modification . id = product_modification . category_modification LEFT JOIN product_modification_price product_modification_price ON product_modification_price . modification = product_modification . id AND product_modification_price . price > 0 LEFT JOIN product_modification_quantity product_modification_quantity ON product_modification_quantity . modification = product_modification . id LEFT JOIN product_modification_images product_modification_image ON
product_modification_image . modification = product_modification . id AND
product_modification_image . root = true
LEFT JOIN user_profile_discount project_profile_discount ON
project_profile_discount . event = project_profile . event WHERE (COALESCE (
NULLIF (product_modification_price . price , 0 ),
NULLIF (product_variation_price . price , 0 ),
NULLIF (product_offer_price . price , 0 ),
NULLIF (product_price . price , 0 ),
0
) > 0 ) AND (
CASE
WHEN product_modification_quantity . quantity IS NOT NULL THEN (product_modification_quantity . quantity - product_modification_quantity . reserve )
WHEN product_variation_quantity . quantity IS NOT NULL THEN (product_variation_quantity . quantity - product_variation_quantity . reserve )
WHEN product_offer_quantity . quantity IS NOT NULL THEN (product_offer_quantity . quantity - product_offer_quantity . reserve )
WHEN product_price . quantity IS NOT NULL THEN (product_price . quantity - product_price . reserve )
ELSE 0
END > 0
) GROUP BY product_price . currency , product_offer_price . currency , product_variation_price . currency , product_modification_price . currency , product . id , product . event , product_trans . name , product_info . url , product_info . sort , product_active . active , product_active . active_from , product_active . active_to , category_offer . card , category_offer . reference , category_variation . card , category_variation . reference , category_modification . card , category_modification . reference , product_modification_image . name , product_variation_image . name , product_offer_images . name , product_photo . name , product_modification_image . ext , product_variation_image . ext , product_offer_images . ext , product_photo . ext , product_modification_image . cdn , product_variation_image . cdn , product_offer_images . cdn , product_photo . cdn , category_info . url , category_trans . name , project_profile_discount . value ORDER BY product_info . sort DESC , SUM (product_modification_quantity . reserve ) DESC , SUM (product_variation_quantity . reserve ) DESC , SUM (product_offer_quantity . reserve ) DESC , SUM (product_price . reserve ) DESC , SUM (product_modification_quantity . quantity ) DESC , SUM (product_variation_quantity . quantity ) DESC , SUM (product_offer_quantity . quantity ) DESC , SUM (product_price . quantity ) DESC LIMIT 6
SELECT
product . id AS product_id ,
product . event AS product_event ,
product_trans . name AS product_name ,
product_info . url AS product_url ,
product_info . sort AS product_sort ,
product_active . active as product_active ,
product_active . active_from as product_active_from ,
product_active . active_to as product_active_to ,
category_offer . card AS category_offer_card ,
category_offer . reference AS product_offer_reference ,
category_variation . card AS category_variation_card ,
category_variation . reference as product_variation_reference ,
category_modification . card AS category_modification_card ,
category_modification . reference as product_modification_reference ,
JSON_AGG (DISTINCT product_invariable . id ) AS invariable ,
CASE WHEN product_modification_image . name IS NOT NULL THEN
CONCAT (
'/upload/product_modification_images' ,
'/' , product_modification_image . name
)
WHEN product_variation_image . name IS NOT NULL THEN
CONCAT (
'/upload/product_variation_images' ,
'/' , product_variation_image . name
)
WHEN product_offer_images . name IS NOT NULL THEN
CONCAT (
'/upload/product_offer_images' ,
'/' , product_offer_images . name
)
WHEN product_photo . name IS NOT NULL THEN
CONCAT (
'/upload/product_photo' , '/' , product_photo . name
)
ELSE
NULL
END AS product_image ,
COALESCE (
product_modification_image . ext ,
product_variation_image . ext , product_offer_images . ext ,
product_photo . ext
) AS product_image_ext ,
COALESCE (
product_modification_image . cdn ,
product_variation_image . cdn , product_offer_images . cdn ,
product_photo . cdn
) AS product_image_cdn ,
category_info . url AS category_url ,
category_trans . name AS category_name ,
COALESCE (
NULLIF (
MIN (
product_modification_price . price
),
0
),
NULLIF (
MIN (product_variation_price . price ),
0
),
NULLIF (
MIN (product_offer_price . price ),
0
),
NULLIF (
MIN (product_price . price ),
0
),
0
) AS product_price ,
CASE WHEN MIN (
product_modification_price . price
) IS NOT NULL THEN
product_modification_price . currency
WHEN MIN (product_variation_price . price ) IS NOT NULL THEN
product_variation_price . currency
WHEN MIN (product_offer_price . price ) IS NOT NULL THEN
product_offer_price . currency
WHEN MIN (product_price . price ) IS NOT NULL THEN
product_price . currency
ELSE
NULL
END AS product_currency ,
project_profile_discount . value AS project_discount
FROM
product
INNER JOIN product_categories_product product_event_category ON product_event_category . event = product . event
AND product_event_category . category IN (? )
LEFT JOIN product_trans product_trans ON product_trans . event = product . event
AND product_trans . local = ?
LEFT JOIN product_info product_info ON product_info . product = product . id
LEFT JOIN product_active product_active ON product_active . event = product . event
LEFT JOIN product_price product_price ON product_price . event = product . event
AND product_price . price > 0
LEFT JOIN product_offer product_offer ON product_offer . event = product . event
INNER JOIN users_profile project_profile ON project_profile . id = ?
LEFT JOIN product_category category ON category . id = product_event_category . category
LEFT JOIN product_category_info category_info ON category_info . event = category . event
AND category_info . active IS TRUE
LEFT JOIN product_category_trans category_trans ON category_trans . event = category . event
AND category_trans . local = ?
LEFT JOIN product_category_offers category_offer ON category_offer . id = product_offer . category_offer
LEFT JOIN product_offer_price product_offer_price ON product_offer_price . offer = product_offer . id
AND product_offer_price . price > 0
LEFT JOIN product_offer_quantity product_offer_quantity ON product_offer_quantity . offer = product_offer . id
LEFT JOIN product_variation product_variation ON product_variation . offer = product_offer . id
LEFT JOIN product_variation_images product_variation_image ON product_variation_image . variation = product_variation . id
AND product_variation_image . root = true
LEFT JOIN product_offer_images product_offer_images ON product_variation_image . name IS NULL
AND product_offer_images . offer = product_offer . id
AND product_offer_images . root = true
LEFT JOIN product_photo product_photo ON product_offer_images . name IS NULL
AND product_photo . event = product . event
AND product_photo . root = true
LEFT JOIN product_category_variation category_variation ON category_variation . id = product_variation . category_variation
LEFT JOIN product_modification product_modification ON product_modification . variation = product_variation . id
LEFT JOIN product_invariable product_invariable ON product_invariable . product = product . id
AND CASE WHEN product_offer . const IS NOT NULL THEN
product_invariable . offer = product_offer . const
ELSE
product_invariable . offer IS NULL
END
AND CASE WHEN product_variation . const IS NOT NULL THEN
product_invariable . variation = product_variation . const
ELSE
product_invariable . variation IS NULL
END
AND CASE WHEN product_modification . const IS NOT NULL THEN
product_invariable . modification = product_modification . const
ELSE
product_invariable . modification IS NULL
END
LEFT JOIN product_variation_price product_variation_price ON product_variation_price . variation = product_variation . id
AND product_variation_price . price > 0
LEFT JOIN product_variation_quantity product_variation_quantity ON product_variation_quantity . variation = product_variation . id
LEFT JOIN product_category_modification category_modification ON category_modification . id = product_modification . category_modification
LEFT JOIN product_modification_price product_modification_price ON product_modification_price . modification = product_modification . id
AND product_modification_price . price > 0
LEFT JOIN product_modification_quantity product_modification_quantity ON product_modification_quantity . modification = product_modification . id
LEFT JOIN product_modification_images product_modification_image ON product_modification_image . modification = product_modification . id
AND product_modification_image . root = true
LEFT JOIN user_profile_discount project_profile_discount ON project_profile_discount . event = project_profile . event
WHERE
(
COALESCE (
NULLIF (
product_modification_price . price ,
0
),
NULLIF (
product_variation_price . price , 0
),
NULLIF (product_offer_price . price , 0 ),
NULLIF (product_price . price , 0 ),
0
) > 0
)
AND (
CASE WHEN product_modification_quantity . quantity IS NOT NULL THEN
(
product_modification_quantity . quantity - product_modification_quantity . reserve
)
WHEN product_variation_quantity . quantity IS NOT NULL THEN
(
product_variation_quantity . quantity - product_variation_quantity . reserve
)
WHEN product_offer_quantity . quantity IS NOT NULL THEN
(
product_offer_quantity . quantity - product_offer_quantity . reserve
)
WHEN product_price . quantity IS NOT NULL THEN
(
product_price . quantity - product_price . reserve
)
ELSE
0
END > 0
)
GROUP BY
product_price . currency ,
product_offer_price . currency ,
product_variation_price . currency ,
product_modification_price . currency ,
product . id ,
product . event ,
product_trans . name ,
product_info . url ,
product_info . sort ,
product_active . active ,
product_active . active_from ,
product_active . active_to ,
category_offer . card ,
category_offer . reference ,
category_variation . card ,
category_variation . reference ,
category_modification . card ,
category_modification . reference ,
product_modification_image . name ,
product_variation_image . name ,
product_offer_images . name ,
product_photo . name ,
product_modification_image . ext ,
product_variation_image . ext ,
product_offer_images . ext ,
product_photo . ext ,
product_modification_image . cdn ,
product_variation_image . cdn ,
product_offer_images . cdn ,
product_photo . cdn ,
category_info . url ,
category_trans . name ,
project_profile_discount . value
ORDER BY
product_info . sort DESC ,
SUM (
product_modification_quantity . reserve
) DESC ,
SUM (
product_variation_quantity . reserve
) DESC ,
SUM (product_offer_quantity . reserve ) DESC ,
SUM (product_price . reserve ) DESC ,
SUM (
product_modification_quantity . quantity
) DESC ,
SUM (
product_variation_quantity . quantity
) DESC ,
SUM (
product_offer_quantity . quantity
) DESC ,
SUM (product_price . quantity ) DESC
LIMIT
6
Copy
SELECT product . id AS product_id , product . event AS product_event , product_trans . name AS product_name , product_info . url AS product_url , product_info . sort AS product_sort , product_active . active as product_active , product_active . active_from as product_active_from , product_active . active_to as product_active_to , category_offer . card AS category_offer_card , category_offer . reference AS product_offer_reference , category_variation . card AS category_variation_card , category_variation . reference as product_variation_reference , category_modification . card AS category_modification_card , category_modification . reference as product_modification_reference , JSON_AGG ( DISTINCT product_invariable . id ) AS invariable ,
CASE
WHEN product_modification_image . name IS NOT NULL THEN
CONCAT ( '/upload/product_modification_images' , '/' , product_modification_image . name )
WHEN product_variation_image . name IS NOT NULL THEN
CONCAT ( '/upload/product_variation_images' , '/' , product_variation_image . name )
WHEN product_offer_images . name IS NOT NULL THEN
CONCAT ( '/upload/product_offer_images' , '/' , product_offer_images . name )
WHEN product_photo . name IS NOT NULL THEN
CONCAT ( '/upload/product_photo' , '/' , product_photo . name )
ELSE NULL
END AS product_image
,
COALESCE (
product_modification_image . ext ,
product_variation_image . ext ,
product_offer_images . ext ,
product_photo . ext
) AS product_image_ext ,
COALESCE (
product_modification_image . cdn ,
product_variation_image . cdn ,
product_offer_images . cdn ,
product_photo . cdn
) AS product_image_cdn , category_info . url AS category_url , category_trans . name AS category_name ,
COALESCE (
NULLIF (MIN (product_modification_price . price ), 0 ),
NULLIF (MIN (product_variation_price . price ), 0 ),
NULLIF (MIN (product_offer_price . price ), 0 ),
NULLIF (MIN (product_price . price ), 0 ),
0
) AS product_price
,
CASE
WHEN MIN (product_modification_price . price ) IS NOT NULL
THEN product_modification_price . currency
WHEN MIN (product_variation_price . price ) IS NOT NULL
THEN product_variation_price . currency
WHEN MIN (product_offer_price . price ) IS NOT NULL
THEN product_offer_price . currency
WHEN MIN (product_price . price ) IS NOT NULL
THEN product_price . currency
ELSE NULL
END AS product_currency
, project_profile_discount . value AS project_discount FROM product INNER JOIN product_categories_product product_event_category ON product_event_category . event = product . event AND product_event_category . category IN ('01905ea6-805e-7a56-b53c-da41c19f9e38' ) LEFT JOIN product_trans product_trans ON product_trans . event = product . event AND product_trans . local = 'ru' LEFT JOIN product_info product_info ON product_info . product = product . id LEFT JOIN product_active product_active ON product_active . event = product . event LEFT JOIN product_price product_price ON product_price . event = product . event AND product_price . price > 0 LEFT JOIN product_offer product_offer ON product_offer . event = product . event INNER JOIN users_profile project_profile ON
project_profile . id = '01982ecf-0a6a-79e5-967b-4992d1b836bb' LEFT JOIN product_category category ON category . id = product_event_category . category LEFT JOIN product_category_info category_info ON category_info . event = category . event AND category_info . active IS TRUE LEFT JOIN product_category_trans category_trans ON category_trans . event = category . event AND category_trans . local = 'ru' LEFT JOIN product_category_offers category_offer ON category_offer . id = product_offer . category_offer LEFT JOIN product_offer_price product_offer_price ON product_offer_price . offer = product_offer . id AND product_offer_price . price > 0 LEFT JOIN product_offer_quantity product_offer_quantity ON product_offer_quantity . offer = product_offer . id LEFT JOIN product_variation product_variation ON product_variation . offer = product_offer . id LEFT JOIN product_variation_images product_variation_image ON
product_variation_image . variation = product_variation . id AND
product_variation_image . root = true
LEFT JOIN product_offer_images product_offer_images ON
product_variation_image . name IS NULL AND
product_offer_images . offer = product_offer . id AND
product_offer_images . root = true
LEFT JOIN product_photo product_photo ON
product_offer_images . name IS NULL AND
product_photo . event = product . event AND
product_photo . root = true
LEFT JOIN product_category_variation category_variation ON category_variation . id = product_variation . category_variation LEFT JOIN product_modification product_modification ON product_modification . variation = product_variation . id LEFT JOIN product_invariable product_invariable ON
product_invariable . product = product . id
AND
CASE
WHEN product_offer . const IS NOT NULL THEN product_invariable . offer = product_offer . const
ELSE product_invariable . offer IS NULL
END
AND
CASE
WHEN product_variation . const IS NOT NULL THEN product_invariable . variation = product_variation . const
ELSE product_invariable . variation IS NULL
END
AND
CASE
WHEN product_modification . const IS NOT NULL THEN product_invariable . modification = product_modification . const
ELSE product_invariable . modification IS NULL
END
LEFT JOIN product_variation_price product_variation_price ON product_variation_price . variation = product_variation . id AND product_variation_price . price > 0 LEFT JOIN product_variation_quantity product_variation_quantity ON product_variation_quantity . variation = product_variation . id LEFT JOIN product_category_modification category_modification ON category_modification . id = product_modification . category_modification LEFT JOIN product_modification_price product_modification_price ON product_modification_price . modification = product_modification . id AND product_modification_price . price > 0 LEFT JOIN product_modification_quantity product_modification_quantity ON product_modification_quantity . modification = product_modification . id LEFT JOIN product_modification_images product_modification_image ON
product_modification_image . modification = product_modification . id AND
product_modification_image . root = true
LEFT JOIN user_profile_discount project_profile_discount ON
project_profile_discount . event = project_profile . event WHERE (COALESCE (
NULLIF (product_modification_price . price , 0 ),
NULLIF (product_variation_price . price , 0 ),
NULLIF (product_offer_price . price , 0 ),
NULLIF (product_price . price , 0 ),
0
) > 0 ) AND (
CASE
WHEN product_modification_quantity . quantity IS NOT NULL THEN (product_modification_quantity . quantity - product_modification_quantity . reserve )
WHEN product_variation_quantity . quantity IS NOT NULL THEN (product_variation_quantity . quantity - product_variation_quantity . reserve )
WHEN product_offer_quantity . quantity IS NOT NULL THEN (product_offer_quantity . quantity - product_offer_quantity . reserve )
WHEN product_price . quantity IS NOT NULL THEN (product_price . quantity - product_price . reserve )
ELSE 0
END > 0
) GROUP BY product_price . currency , product_offer_price . currency , product_variation_price . currency , product_modification_price . currency , product . id , product . event , product_trans . name , product_info . url , product_info . sort , product_active . active , product_active . active_from , product_active . active_to , category_offer . card , category_offer . reference , category_variation . card , category_variation . reference , category_modification . card , category_modification . reference , product_modification_image . name , product_variation_image . name , product_offer_images . name , product_photo . name , product_modification_image . ext , product_variation_image . ext , product_offer_images . ext , product_photo . ext , product_modification_image . cdn , product_variation_image . cdn , product_offer_images . cdn , product_photo . cdn , category_info . url , category_trans . name , project_profile_discount . value ORDER BY product_info . sort DESC , SUM (product_modification_quantity . reserve ) DESC , SUM (product_variation_quantity . reserve ) DESC , SUM (product_offer_quantity . reserve ) DESC , SUM (product_price . reserve ) DESC , SUM (product_modification_quantity . quantity ) DESC , SUM (product_variation_quantity . quantity ) DESC , SUM (product_offer_quantity . quantity ) DESC , SUM (product_price . quantity ) DESC LIMIT 6 ;
Copy
4
84.90 ms
SELECT product . id AS product_id , product . event AS product_event , product_trans . name AS product_name , product_info . url AS product_url , product_info . sort AS product_sort , product_active . active as product_active , product_active . active_from as product_active_from , product_active . active_to as product_active_to , category_offer . card AS category_offer_card , category_offer . reference AS product_offer_reference , category_variation . card AS category_variation_card , category_variation . reference as product_variation_reference , category_modification . card AS category_modification_card , category_modification . reference as product_modification_reference , JSON_AGG ( DISTINCT product_invariable . id ) AS invariable ,
CASE
WHEN product_modification_image . name IS NOT NULL THEN
CONCAT ( '/upload/product_modification_images' , '/' , product_modification_image . name )
WHEN product_variation_image . name IS NOT NULL THEN
CONCAT ( '/upload/product_variation_images' , '/' , product_variation_image . name )
WHEN product_offer_images . name IS NOT NULL THEN
CONCAT ( '/upload/product_offer_images' , '/' , product_offer_images . name )
WHEN product_photo . name IS NOT NULL THEN
CONCAT ( '/upload/product_photo' , '/' , product_photo . name )
ELSE NULL
END AS product_image
,
COALESCE (
product_modification_image . ext ,
product_variation_image . ext ,
product_offer_images . ext ,
product_photo . ext
) AS product_image_ext ,
COALESCE (
product_modification_image . cdn ,
product_variation_image . cdn ,
product_offer_images . cdn ,
product_photo . cdn
) AS product_image_cdn , category_info . url AS category_url , category_trans . name AS category_name ,
COALESCE (
NULLIF (MIN (product_modification_price . price ), 0 ),
NULLIF (MIN (product_variation_price . price ), 0 ),
NULLIF (MIN (product_offer_price . price ), 0 ),
NULLIF (MIN (product_price . price ), 0 ),
0
) AS product_price
,
CASE
WHEN MIN (product_modification_price . price ) IS NOT NULL
THEN product_modification_price . currency
WHEN MIN (product_variation_price . price ) IS NOT NULL
THEN product_variation_price . currency
WHEN MIN (product_offer_price . price ) IS NOT NULL
THEN product_offer_price . currency
WHEN MIN (product_price . price ) IS NOT NULL
THEN product_price . currency
ELSE NULL
END AS product_currency
, project_profile_discount . value AS project_discount FROM product INNER JOIN product_categories_product product_event_category ON product_event_category . event = product . event AND product_event_category . category IN (? ) LEFT JOIN product_trans product_trans ON product_trans . event = product . event AND product_trans . local = ? LEFT JOIN product_info product_info ON product_info . product = product . id LEFT JOIN product_active product_active ON product_active . event = product . event LEFT JOIN product_price product_price ON product_price . event = product . event AND product_price . price > 0 LEFT JOIN product_offer product_offer ON product_offer . event = product . event INNER JOIN users_profile project_profile ON
project_profile . id = ? LEFT JOIN product_category category ON category . id = product_event_category . category LEFT JOIN product_category_info category_info ON category_info . event = category . event AND category_info . active IS TRUE LEFT JOIN product_category_trans category_trans ON category_trans . event = category . event AND category_trans . local = ? LEFT JOIN product_category_offers category_offer ON category_offer . id = product_offer . category_offer LEFT JOIN product_offer_price product_offer_price ON product_offer_price . offer = product_offer . id AND product_offer_price . price > 0 LEFT JOIN product_offer_quantity product_offer_quantity ON product_offer_quantity . offer = product_offer . id LEFT JOIN product_variation product_variation ON product_variation . offer = product_offer . id LEFT JOIN product_variation_images product_variation_image ON
product_variation_image . variation = product_variation . id AND
product_variation_image . root = true
LEFT JOIN product_offer_images product_offer_images ON
product_variation_image . name IS NULL AND
product_offer_images . offer = product_offer . id AND
product_offer_images . root = true
LEFT JOIN product_photo product_photo ON
product_offer_images . name IS NULL AND
product_photo . event = product . event AND
product_photo . root = true
LEFT JOIN product_category_variation category_variation ON category_variation . id = product_variation . category_variation LEFT JOIN product_modification product_modification ON product_modification . variation = product_variation . id LEFT JOIN product_invariable product_invariable ON
product_invariable . product = product . id
AND
CASE
WHEN product_offer . const IS NOT NULL THEN product_invariable . offer = product_offer . const
ELSE product_invariable . offer IS NULL
END
AND
CASE
WHEN product_variation . const IS NOT NULL THEN product_invariable . variation = product_variation . const
ELSE product_invariable . variation IS NULL
END
AND
CASE
WHEN product_modification . const IS NOT NULL THEN product_invariable . modification = product_modification . const
ELSE product_invariable . modification IS NULL
END
LEFT JOIN product_variation_price product_variation_price ON product_variation_price . variation = product_variation . id AND product_variation_price . price > 0 LEFT JOIN product_variation_quantity product_variation_quantity ON product_variation_quantity . variation = product_variation . id LEFT JOIN product_category_modification category_modification ON category_modification . id = product_modification . category_modification LEFT JOIN product_modification_price product_modification_price ON product_modification_price . modification = product_modification . id AND product_modification_price . price > 0 LEFT JOIN product_modification_quantity product_modification_quantity ON product_modification_quantity . modification = product_modification . id LEFT JOIN product_modification_images product_modification_image ON
product_modification_image . modification = product_modification . id AND
product_modification_image . root = true
LEFT JOIN user_profile_discount project_profile_discount ON
project_profile_discount . event = project_profile . event WHERE (COALESCE (
NULLIF (product_modification_price . price , 0 ),
NULLIF (product_variation_price . price , 0 ),
NULLIF (product_offer_price . price , 0 ),
NULLIF (product_price . price , 0 ),
0
) > 0 ) AND (
CASE
WHEN product_modification_quantity . quantity IS NOT NULL THEN (product_modification_quantity . quantity - product_modification_quantity . reserve )
WHEN product_variation_quantity . quantity IS NOT NULL THEN (product_variation_quantity . quantity - product_variation_quantity . reserve )
WHEN product_offer_quantity . quantity IS NOT NULL THEN (product_offer_quantity . quantity - product_offer_quantity . reserve )
WHEN product_price . quantity IS NOT NULL THEN (product_price . quantity - product_price . reserve )
ELSE 0
END > 0
) GROUP BY product_price . currency , product_offer_price . currency , product_variation_price . currency , product_modification_price . currency , product . id , product . event , product_trans . name , product_info . url , product_info . sort , product_active . active , product_active . active_from , product_active . active_to , category_offer . card , category_offer . reference , category_variation . card , category_variation . reference , category_modification . card , category_modification . reference , product_modification_image . name , product_variation_image . name , product_offer_images . name , product_photo . name , product_modification_image . ext , product_variation_image . ext , product_offer_images . ext , product_photo . ext , product_modification_image . cdn , product_variation_image . cdn , product_offer_images . cdn , product_photo . cdn , category_info . url , category_trans . name , project_profile_discount . value ORDER BY product_info . sort DESC , SUM (product_modification_quantity . reserve ) DESC , SUM (product_variation_quantity . reserve ) DESC , SUM (product_offer_quantity . reserve ) DESC , SUM (product_price . reserve ) DESC , SUM (product_modification_quantity . quantity ) DESC , SUM (product_variation_quantity . quantity ) DESC , SUM (product_offer_quantity . quantity ) DESC , SUM (product_price . quantity ) DESC LIMIT 6
SELECT
product . id AS product_id ,
product . event AS product_event ,
product_trans . name AS product_name ,
product_info . url AS product_url ,
product_info . sort AS product_sort ,
product_active . active as product_active ,
product_active . active_from as product_active_from ,
product_active . active_to as product_active_to ,
category_offer . card AS category_offer_card ,
category_offer . reference AS product_offer_reference ,
category_variation . card AS category_variation_card ,
category_variation . reference as product_variation_reference ,
category_modification . card AS category_modification_card ,
category_modification . reference as product_modification_reference ,
JSON_AGG (DISTINCT product_invariable . id ) AS invariable ,
CASE WHEN product_modification_image . name IS NOT NULL THEN
CONCAT (
'/upload/product_modification_images' ,
'/' , product_modification_image . name
)
WHEN product_variation_image . name IS NOT NULL THEN
CONCAT (
'/upload/product_variation_images' ,
'/' , product_variation_image . name
)
WHEN product_offer_images . name IS NOT NULL THEN
CONCAT (
'/upload/product_offer_images' ,
'/' , product_offer_images . name
)
WHEN product_photo . name IS NOT NULL THEN
CONCAT (
'/upload/product_photo' , '/' , product_photo . name
)
ELSE
NULL
END AS product_image ,
COALESCE (
product_modification_image . ext ,
product_variation_image . ext , product_offer_images . ext ,
product_photo . ext
) AS product_image_ext ,
COALESCE (
product_modification_image . cdn ,
product_variation_image . cdn , product_offer_images . cdn ,
product_photo . cdn
) AS product_image_cdn ,
category_info . url AS category_url ,
category_trans . name AS category_name ,
COALESCE (
NULLIF (
MIN (
product_modification_price . price
),
0
),
NULLIF (
MIN (product_variation_price . price ),
0
),
NULLIF (
MIN (product_offer_price . price ),
0
),
NULLIF (
MIN (product_price . price ),
0
),
0
) AS product_price ,
CASE WHEN MIN (
product_modification_price . price
) IS NOT NULL THEN
product_modification_price . currency
WHEN MIN (product_variation_price . price ) IS NOT NULL THEN
product_variation_price . currency
WHEN MIN (product_offer_price . price ) IS NOT NULL THEN
product_offer_price . currency
WHEN MIN (product_price . price ) IS NOT NULL THEN
product_price . currency
ELSE
NULL
END AS product_currency ,
project_profile_discount . value AS project_discount
FROM
product
INNER JOIN product_categories_product product_event_category ON product_event_category . event = product . event
AND product_event_category . category IN (? )
LEFT JOIN product_trans product_trans ON product_trans . event = product . event
AND product_trans . local = ?
LEFT JOIN product_info product_info ON product_info . product = product . id
LEFT JOIN product_active product_active ON product_active . event = product . event
LEFT JOIN product_price product_price ON product_price . event = product . event
AND product_price . price > 0
LEFT JOIN product_offer product_offer ON product_offer . event = product . event
INNER JOIN users_profile project_profile ON project_profile . id = ?
LEFT JOIN product_category category ON category . id = product_event_category . category
LEFT JOIN product_category_info category_info ON category_info . event = category . event
AND category_info . active IS TRUE
LEFT JOIN product_category_trans category_trans ON category_trans . event = category . event
AND category_trans . local = ?
LEFT JOIN product_category_offers category_offer ON category_offer . id = product_offer . category_offer
LEFT JOIN product_offer_price product_offer_price ON product_offer_price . offer = product_offer . id
AND product_offer_price . price > 0
LEFT JOIN product_offer_quantity product_offer_quantity ON product_offer_quantity . offer = product_offer . id
LEFT JOIN product_variation product_variation ON product_variation . offer = product_offer . id
LEFT JOIN product_variation_images product_variation_image ON product_variation_image . variation = product_variation . id
AND product_variation_image . root = true
LEFT JOIN product_offer_images product_offer_images ON product_variation_image . name IS NULL
AND product_offer_images . offer = product_offer . id
AND product_offer_images . root = true
LEFT JOIN product_photo product_photo ON product_offer_images . name IS NULL
AND product_photo . event = product . event
AND product_photo . root = true
LEFT JOIN product_category_variation category_variation ON category_variation . id = product_variation . category_variation
LEFT JOIN product_modification product_modification ON product_modification . variation = product_variation . id
LEFT JOIN product_invariable product_invariable ON product_invariable . product = product . id
AND CASE WHEN product_offer . const IS NOT NULL THEN
product_invariable . offer = product_offer . const
ELSE
product_invariable . offer IS NULL
END
AND CASE WHEN product_variation . const IS NOT NULL THEN
product_invariable . variation = product_variation . const
ELSE
product_invariable . variation IS NULL
END
AND CASE WHEN product_modification . const IS NOT NULL THEN
product_invariable . modification = product_modification . const
ELSE
product_invariable . modification IS NULL
END
LEFT JOIN product_variation_price product_variation_price ON product_variation_price . variation = product_variation . id
AND product_variation_price . price > 0
LEFT JOIN product_variation_quantity product_variation_quantity ON product_variation_quantity . variation = product_variation . id
LEFT JOIN product_category_modification category_modification ON category_modification . id = product_modification . category_modification
LEFT JOIN product_modification_price product_modification_price ON product_modification_price . modification = product_modification . id
AND product_modification_price . price > 0
LEFT JOIN product_modification_quantity product_modification_quantity ON product_modification_quantity . modification = product_modification . id
LEFT JOIN product_modification_images product_modification_image ON product_modification_image . modification = product_modification . id
AND product_modification_image . root = true
LEFT JOIN user_profile_discount project_profile_discount ON project_profile_discount . event = project_profile . event
WHERE
(
COALESCE (
NULLIF (
product_modification_price . price ,
0
),
NULLIF (
product_variation_price . price , 0
),
NULLIF (product_offer_price . price , 0 ),
NULLIF (product_price . price , 0 ),
0
) > 0
)
AND (
CASE WHEN product_modification_quantity . quantity IS NOT NULL THEN
(
product_modification_quantity . quantity - product_modification_quantity . reserve
)
WHEN product_variation_quantity . quantity IS NOT NULL THEN
(
product_variation_quantity . quantity - product_variation_quantity . reserve
)
WHEN product_offer_quantity . quantity IS NOT NULL THEN
(
product_offer_quantity . quantity - product_offer_quantity . reserve
)
WHEN product_price . quantity IS NOT NULL THEN
(
product_price . quantity - product_price . reserve
)
ELSE
0
END > 0
)
GROUP BY
product_price . currency ,
product_offer_price . currency ,
product_variation_price . currency ,
product_modification_price . currency ,
product . id ,
product . event ,
product_trans . name ,
product_info . url ,
product_info . sort ,
product_active . active ,
product_active . active_from ,
product_active . active_to ,
category_offer . card ,
category_offer . reference ,
category_variation . card ,
category_variation . reference ,
category_modification . card ,
category_modification . reference ,
product_modification_image . name ,
product_variation_image . name ,
product_offer_images . name ,
product_photo . name ,
product_modification_image . ext ,
product_variation_image . ext ,
product_offer_images . ext ,
product_photo . ext ,
product_modification_image . cdn ,
product_variation_image . cdn ,
product_offer_images . cdn ,
product_photo . cdn ,
category_info . url ,
category_trans . name ,
project_profile_discount . value
ORDER BY
product_info . sort DESC ,
SUM (
product_modification_quantity . reserve
) DESC ,
SUM (
product_variation_quantity . reserve
) DESC ,
SUM (product_offer_quantity . reserve ) DESC ,
SUM (product_price . reserve ) DESC ,
SUM (
product_modification_quantity . quantity
) DESC ,
SUM (
product_variation_quantity . quantity
) DESC ,
SUM (
product_offer_quantity . quantity
) DESC ,
SUM (product_price . quantity ) DESC
LIMIT
6
Copy
SELECT product . id AS product_id , product . event AS product_event , product_trans . name AS product_name , product_info . url AS product_url , product_info . sort AS product_sort , product_active . active as product_active , product_active . active_from as product_active_from , product_active . active_to as product_active_to , category_offer . card AS category_offer_card , category_offer . reference AS product_offer_reference , category_variation . card AS category_variation_card , category_variation . reference as product_variation_reference , category_modification . card AS category_modification_card , category_modification . reference as product_modification_reference , JSON_AGG ( DISTINCT product_invariable . id ) AS invariable ,
CASE
WHEN product_modification_image . name IS NOT NULL THEN
CONCAT ( '/upload/product_modification_images' , '/' , product_modification_image . name )
WHEN product_variation_image . name IS NOT NULL THEN
CONCAT ( '/upload/product_variation_images' , '/' , product_variation_image . name )
WHEN product_offer_images . name IS NOT NULL THEN
CONCAT ( '/upload/product_offer_images' , '/' , product_offer_images . name )
WHEN product_photo . name IS NOT NULL THEN
CONCAT ( '/upload/product_photo' , '/' , product_photo . name )
ELSE NULL
END AS product_image
,
COALESCE (
product_modification_image . ext ,
product_variation_image . ext ,
product_offer_images . ext ,
product_photo . ext
) AS product_image_ext ,
COALESCE (
product_modification_image . cdn ,
product_variation_image . cdn ,
product_offer_images . cdn ,
product_photo . cdn
) AS product_image_cdn , category_info . url AS category_url , category_trans . name AS category_name ,
COALESCE (
NULLIF (MIN (product_modification_price . price ), 0 ),
NULLIF (MIN (product_variation_price . price ), 0 ),
NULLIF (MIN (product_offer_price . price ), 0 ),
NULLIF (MIN (product_price . price ), 0 ),
0
) AS product_price
,
CASE
WHEN MIN (product_modification_price . price ) IS NOT NULL
THEN product_modification_price . currency
WHEN MIN (product_variation_price . price ) IS NOT NULL
THEN product_variation_price . currency
WHEN MIN (product_offer_price . price ) IS NOT NULL
THEN product_offer_price . currency
WHEN MIN (product_price . price ) IS NOT NULL
THEN product_price . currency
ELSE NULL
END AS product_currency
, project_profile_discount . value AS project_discount FROM product INNER JOIN product_categories_product product_event_category ON product_event_category . event = product . event AND product_event_category . category IN ('0190ef25-1d90-79d0-8d42-1c2baf9319c2' ) LEFT JOIN product_trans product_trans ON product_trans . event = product . event AND product_trans . local = 'ru' LEFT JOIN product_info product_info ON product_info . product = product . id LEFT JOIN product_active product_active ON product_active . event = product . event LEFT JOIN product_price product_price ON product_price . event = product . event AND product_price . price > 0 LEFT JOIN product_offer product_offer ON product_offer . event = product . event INNER JOIN users_profile project_profile ON
project_profile . id = '01982ecf-0a6a-79e5-967b-4992d1b836bb' LEFT JOIN product_category category ON category . id = product_event_category . category LEFT JOIN product_category_info category_info ON category_info . event = category . event AND category_info . active IS TRUE LEFT JOIN product_category_trans category_trans ON category_trans . event = category . event AND category_trans . local = 'ru' LEFT JOIN product_category_offers category_offer ON category_offer . id = product_offer . category_offer LEFT JOIN product_offer_price product_offer_price ON product_offer_price . offer = product_offer . id AND product_offer_price . price > 0 LEFT JOIN product_offer_quantity product_offer_quantity ON product_offer_quantity . offer = product_offer . id LEFT JOIN product_variation product_variation ON product_variation . offer = product_offer . id LEFT JOIN product_variation_images product_variation_image ON
product_variation_image . variation = product_variation . id AND
product_variation_image . root = true
LEFT JOIN product_offer_images product_offer_images ON
product_variation_image . name IS NULL AND
product_offer_images . offer = product_offer . id AND
product_offer_images . root = true
LEFT JOIN product_photo product_photo ON
product_offer_images . name IS NULL AND
product_photo . event = product . event AND
product_photo . root = true
LEFT JOIN product_category_variation category_variation ON category_variation . id = product_variation . category_variation LEFT JOIN product_modification product_modification ON product_modification . variation = product_variation . id LEFT JOIN product_invariable product_invariable ON
product_invariable . product = product . id
AND
CASE
WHEN product_offer . const IS NOT NULL THEN product_invariable . offer = product_offer . const
ELSE product_invariable . offer IS NULL
END
AND
CASE
WHEN product_variation . const IS NOT NULL THEN product_invariable . variation = product_variation . const
ELSE product_invariable . variation IS NULL
END
AND
CASE
WHEN product_modification . const IS NOT NULL THEN product_invariable . modification = product_modification . const
ELSE product_invariable . modification IS NULL
END
LEFT JOIN product_variation_price product_variation_price ON product_variation_price . variation = product_variation . id AND product_variation_price . price > 0 LEFT JOIN product_variation_quantity product_variation_quantity ON product_variation_quantity . variation = product_variation . id LEFT JOIN product_category_modification category_modification ON category_modification . id = product_modification . category_modification LEFT JOIN product_modification_price product_modification_price ON product_modification_price . modification = product_modification . id AND product_modification_price . price > 0 LEFT JOIN product_modification_quantity product_modification_quantity ON product_modification_quantity . modification = product_modification . id LEFT JOIN product_modification_images product_modification_image ON
product_modification_image . modification = product_modification . id AND
product_modification_image . root = true
LEFT JOIN user_profile_discount project_profile_discount ON
project_profile_discount . event = project_profile . event WHERE (COALESCE (
NULLIF (product_modification_price . price , 0 ),
NULLIF (product_variation_price . price , 0 ),
NULLIF (product_offer_price . price , 0 ),
NULLIF (product_price . price , 0 ),
0
) > 0 ) AND (
CASE
WHEN product_modification_quantity . quantity IS NOT NULL THEN (product_modification_quantity . quantity - product_modification_quantity . reserve )
WHEN product_variation_quantity . quantity IS NOT NULL THEN (product_variation_quantity . quantity - product_variation_quantity . reserve )
WHEN product_offer_quantity . quantity IS NOT NULL THEN (product_offer_quantity . quantity - product_offer_quantity . reserve )
WHEN product_price . quantity IS NOT NULL THEN (product_price . quantity - product_price . reserve )
ELSE 0
END > 0
) GROUP BY product_price . currency , product_offer_price . currency , product_variation_price . currency , product_modification_price . currency , product . id , product . event , product_trans . name , product_info . url , product_info . sort , product_active . active , product_active . active_from , product_active . active_to , category_offer . card , category_offer . reference , category_variation . card , category_variation . reference , category_modification . card , category_modification . reference , product_modification_image . name , product_variation_image . name , product_offer_images . name , product_photo . name , product_modification_image . ext , product_variation_image . ext , product_offer_images . ext , product_photo . ext , product_modification_image . cdn , product_variation_image . cdn , product_offer_images . cdn , product_photo . cdn , category_info . url , category_trans . name , project_profile_discount . value ORDER BY product_info . sort DESC , SUM (product_modification_quantity . reserve ) DESC , SUM (product_variation_quantity . reserve ) DESC , SUM (product_offer_quantity . reserve ) DESC , SUM (product_price . reserve ) DESC , SUM (product_modification_quantity . quantity ) DESC , SUM (product_variation_quantity . quantity ) DESC , SUM (product_offer_quantity . quantity ) DESC , SUM (product_price . quantity ) DESC LIMIT 6 ;
Copy
5
84.55 ms
SELECT product . id AS product_id , product . event AS product_event , product_trans . name AS product_name , product_info . url AS product_url , product_info . sort AS product_sort , product_active . active as product_active , product_active . active_from as product_active_from , product_active . active_to as product_active_to , category_offer . card AS category_offer_card , category_offer . reference AS product_offer_reference , category_variation . card AS category_variation_card , category_variation . reference as product_variation_reference , category_modification . card AS category_modification_card , category_modification . reference as product_modification_reference , JSON_AGG ( DISTINCT product_invariable . id ) AS invariable ,
CASE
WHEN product_modification_image . name IS NOT NULL THEN
CONCAT ( '/upload/product_modification_images' , '/' , product_modification_image . name )
WHEN product_variation_image . name IS NOT NULL THEN
CONCAT ( '/upload/product_variation_images' , '/' , product_variation_image . name )
WHEN product_offer_images . name IS NOT NULL THEN
CONCAT ( '/upload/product_offer_images' , '/' , product_offer_images . name )
WHEN product_photo . name IS NOT NULL THEN
CONCAT ( '/upload/product_photo' , '/' , product_photo . name )
ELSE NULL
END AS product_image
,
COALESCE (
product_modification_image . ext ,
product_variation_image . ext ,
product_offer_images . ext ,
product_photo . ext
) AS product_image_ext ,
COALESCE (
product_modification_image . cdn ,
product_variation_image . cdn ,
product_offer_images . cdn ,
product_photo . cdn
) AS product_image_cdn , category_info . url AS category_url , category_trans . name AS category_name ,
COALESCE (
NULLIF (MIN (product_modification_price . price ), 0 ),
NULLIF (MIN (product_variation_price . price ), 0 ),
NULLIF (MIN (product_offer_price . price ), 0 ),
NULLIF (MIN (product_price . price ), 0 ),
0
) AS product_price
,
CASE
WHEN MIN (product_modification_price . price ) IS NOT NULL
THEN product_modification_price . currency
WHEN MIN (product_variation_price . price ) IS NOT NULL
THEN product_variation_price . currency
WHEN MIN (product_offer_price . price ) IS NOT NULL
THEN product_offer_price . currency
WHEN MIN (product_price . price ) IS NOT NULL
THEN product_price . currency
ELSE NULL
END AS product_currency
, project_profile_discount . value AS project_discount FROM product INNER JOIN product_categories_product product_event_category ON product_event_category . event = product . event AND product_event_category . category IN (? ) LEFT JOIN product_trans product_trans ON product_trans . event = product . event AND product_trans . local = ? LEFT JOIN product_info product_info ON product_info . product = product . id LEFT JOIN product_active product_active ON product_active . event = product . event LEFT JOIN product_price product_price ON product_price . event = product . event AND product_price . price > 0 LEFT JOIN product_offer product_offer ON product_offer . event = product . event INNER JOIN users_profile project_profile ON
project_profile . id = ? LEFT JOIN product_category category ON category . id = product_event_category . category LEFT JOIN product_category_info category_info ON category_info . event = category . event AND category_info . active IS TRUE LEFT JOIN product_category_trans category_trans ON category_trans . event = category . event AND category_trans . local = ? LEFT JOIN product_category_offers category_offer ON category_offer . id = product_offer . category_offer LEFT JOIN product_offer_price product_offer_price ON product_offer_price . offer = product_offer . id AND product_offer_price . price > 0 LEFT JOIN product_offer_quantity product_offer_quantity ON product_offer_quantity . offer = product_offer . id LEFT JOIN product_variation product_variation ON product_variation . offer = product_offer . id LEFT JOIN product_variation_images product_variation_image ON
product_variation_image . variation = product_variation . id AND
product_variation_image . root = true
LEFT JOIN product_offer_images product_offer_images ON
product_variation_image . name IS NULL AND
product_offer_images . offer = product_offer . id AND
product_offer_images . root = true
LEFT JOIN product_photo product_photo ON
product_offer_images . name IS NULL AND
product_photo . event = product . event AND
product_photo . root = true
LEFT JOIN product_category_variation category_variation ON category_variation . id = product_variation . category_variation LEFT JOIN product_modification product_modification ON product_modification . variation = product_variation . id LEFT JOIN product_invariable product_invariable ON
product_invariable . product = product . id
AND
CASE
WHEN product_offer . const IS NOT NULL THEN product_invariable . offer = product_offer . const
ELSE product_invariable . offer IS NULL
END
AND
CASE
WHEN product_variation . const IS NOT NULL THEN product_invariable . variation = product_variation . const
ELSE product_invariable . variation IS NULL
END
AND
CASE
WHEN product_modification . const IS NOT NULL THEN product_invariable . modification = product_modification . const
ELSE product_invariable . modification IS NULL
END
LEFT JOIN product_variation_price product_variation_price ON product_variation_price . variation = product_variation . id AND product_variation_price . price > 0 LEFT JOIN product_variation_quantity product_variation_quantity ON product_variation_quantity . variation = product_variation . id LEFT JOIN product_category_modification category_modification ON category_modification . id = product_modification . category_modification LEFT JOIN product_modification_price product_modification_price ON product_modification_price . modification = product_modification . id AND product_modification_price . price > 0 LEFT JOIN product_modification_quantity product_modification_quantity ON product_modification_quantity . modification = product_modification . id LEFT JOIN product_modification_images product_modification_image ON
product_modification_image . modification = product_modification . id AND
product_modification_image . root = true
LEFT JOIN user_profile_discount project_profile_discount ON
project_profile_discount . event = project_profile . event WHERE (COALESCE (
NULLIF (product_modification_price . price , 0 ),
NULLIF (product_variation_price . price , 0 ),
NULLIF (product_offer_price . price , 0 ),
NULLIF (product_price . price , 0 ),
0
) > 0 ) AND (
CASE
WHEN product_modification_quantity . quantity IS NOT NULL THEN (product_modification_quantity . quantity - product_modification_quantity . reserve )
WHEN product_variation_quantity . quantity IS NOT NULL THEN (product_variation_quantity . quantity - product_variation_quantity . reserve )
WHEN product_offer_quantity . quantity IS NOT NULL THEN (product_offer_quantity . quantity - product_offer_quantity . reserve )
WHEN product_price . quantity IS NOT NULL THEN (product_price . quantity - product_price . reserve )
ELSE 0
END > 0
) GROUP BY product_price . currency , product_offer_price . currency , product_variation_price . currency , product_modification_price . currency , product . id , product . event , product_trans . name , product_info . url , product_info . sort , product_active . active , product_active . active_from , product_active . active_to , category_offer . card , category_offer . reference , category_variation . card , category_variation . reference , category_modification . card , category_modification . reference , product_modification_image . name , product_variation_image . name , product_offer_images . name , product_photo . name , product_modification_image . ext , product_variation_image . ext , product_offer_images . ext , product_photo . ext , product_modification_image . cdn , product_variation_image . cdn , product_offer_images . cdn , product_photo . cdn , category_info . url , category_trans . name , project_profile_discount . value ORDER BY product_info . sort DESC , SUM (product_modification_quantity . reserve ) DESC , SUM (product_variation_quantity . reserve ) DESC , SUM (product_offer_quantity . reserve ) DESC , SUM (product_price . reserve ) DESC , SUM (product_modification_quantity . quantity ) DESC , SUM (product_variation_quantity . quantity ) DESC , SUM (product_offer_quantity . quantity ) DESC , SUM (product_price . quantity ) DESC LIMIT 6
SELECT
product . id AS product_id ,
product . event AS product_event ,
product_trans . name AS product_name ,
product_info . url AS product_url ,
product_info . sort AS product_sort ,
product_active . active as product_active ,
product_active . active_from as product_active_from ,
product_active . active_to as product_active_to ,
category_offer . card AS category_offer_card ,
category_offer . reference AS product_offer_reference ,
category_variation . card AS category_variation_card ,
category_variation . reference as product_variation_reference ,
category_modification . card AS category_modification_card ,
category_modification . reference as product_modification_reference ,
JSON_AGG (DISTINCT product_invariable . id ) AS invariable ,
CASE WHEN product_modification_image . name IS NOT NULL THEN
CONCAT (
'/upload/product_modification_images' ,
'/' , product_modification_image . name
)
WHEN product_variation_image . name IS NOT NULL THEN
CONCAT (
'/upload/product_variation_images' ,
'/' , product_variation_image . name
)
WHEN product_offer_images . name IS NOT NULL THEN
CONCAT (
'/upload/product_offer_images' ,
'/' , product_offer_images . name
)
WHEN product_photo . name IS NOT NULL THEN
CONCAT (
'/upload/product_photo' , '/' , product_photo . name
)
ELSE
NULL
END AS product_image ,
COALESCE (
product_modification_image . ext ,
product_variation_image . ext , product_offer_images . ext ,
product_photo . ext
) AS product_image_ext ,
COALESCE (
product_modification_image . cdn ,
product_variation_image . cdn , product_offer_images . cdn ,
product_photo . cdn
) AS product_image_cdn ,
category_info . url AS category_url ,
category_trans . name AS category_name ,
COALESCE (
NULLIF (
MIN (
product_modification_price . price
),
0
),
NULLIF (
MIN (product_variation_price . price ),
0
),
NULLIF (
MIN (product_offer_price . price ),
0
),
NULLIF (
MIN (product_price . price ),
0
),
0
) AS product_price ,
CASE WHEN MIN (
product_modification_price . price
) IS NOT NULL THEN
product_modification_price . currency
WHEN MIN (product_variation_price . price ) IS NOT NULL THEN
product_variation_price . currency
WHEN MIN (product_offer_price . price ) IS NOT NULL THEN
product_offer_price . currency
WHEN MIN (product_price . price ) IS NOT NULL THEN
product_price . currency
ELSE
NULL
END AS product_currency ,
project_profile_discount . value AS project_discount
FROM
product
INNER JOIN product_categories_product product_event_category ON product_event_category . event = product . event
AND product_event_category . category IN (? )
LEFT JOIN product_trans product_trans ON product_trans . event = product . event
AND product_trans . local = ?
LEFT JOIN product_info product_info ON product_info . product = product . id
LEFT JOIN product_active product_active ON product_active . event = product . event
LEFT JOIN product_price product_price ON product_price . event = product . event
AND product_price . price > 0
LEFT JOIN product_offer product_offer ON product_offer . event = product . event
INNER JOIN users_profile project_profile ON project_profile . id = ?
LEFT JOIN product_category category ON category . id = product_event_category . category
LEFT JOIN product_category_info category_info ON category_info . event = category . event
AND category_info . active IS TRUE
LEFT JOIN product_category_trans category_trans ON category_trans . event = category . event
AND category_trans . local = ?
LEFT JOIN product_category_offers category_offer ON category_offer . id = product_offer . category_offer
LEFT JOIN product_offer_price product_offer_price ON product_offer_price . offer = product_offer . id
AND product_offer_price . price > 0
LEFT JOIN product_offer_quantity product_offer_quantity ON product_offer_quantity . offer = product_offer . id
LEFT JOIN product_variation product_variation ON product_variation . offer = product_offer . id
LEFT JOIN product_variation_images product_variation_image ON product_variation_image . variation = product_variation . id
AND product_variation_image . root = true
LEFT JOIN product_offer_images product_offer_images ON product_variation_image . name IS NULL
AND product_offer_images . offer = product_offer . id
AND product_offer_images . root = true
LEFT JOIN product_photo product_photo ON product_offer_images . name IS NULL
AND product_photo . event = product . event
AND product_photo . root = true
LEFT JOIN product_category_variation category_variation ON category_variation . id = product_variation . category_variation
LEFT JOIN product_modification product_modification ON product_modification . variation = product_variation . id
LEFT JOIN product_invariable product_invariable ON product_invariable . product = product . id
AND CASE WHEN product_offer . const IS NOT NULL THEN
product_invariable . offer = product_offer . const
ELSE
product_invariable . offer IS NULL
END
AND CASE WHEN product_variation . const IS NOT NULL THEN
product_invariable . variation = product_variation . const
ELSE
product_invariable . variation IS NULL
END
AND CASE WHEN product_modification . const IS NOT NULL THEN
product_invariable . modification = product_modification . const
ELSE
product_invariable . modification IS NULL
END
LEFT JOIN product_variation_price product_variation_price ON product_variation_price . variation = product_variation . id
AND product_variation_price . price > 0
LEFT JOIN product_variation_quantity product_variation_quantity ON product_variation_quantity . variation = product_variation . id
LEFT JOIN product_category_modification category_modification ON category_modification . id = product_modification . category_modification
LEFT JOIN product_modification_price product_modification_price ON product_modification_price . modification = product_modification . id
AND product_modification_price . price > 0
LEFT JOIN product_modification_quantity product_modification_quantity ON product_modification_quantity . modification = product_modification . id
LEFT JOIN product_modification_images product_modification_image ON product_modification_image . modification = product_modification . id
AND product_modification_image . root = true
LEFT JOIN user_profile_discount project_profile_discount ON project_profile_discount . event = project_profile . event
WHERE
(
COALESCE (
NULLIF (
product_modification_price . price ,
0
),
NULLIF (
product_variation_price . price , 0
),
NULLIF (product_offer_price . price , 0 ),
NULLIF (product_price . price , 0 ),
0
) > 0
)
AND (
CASE WHEN product_modification_quantity . quantity IS NOT NULL THEN
(
product_modification_quantity . quantity - product_modification_quantity . reserve
)
WHEN product_variation_quantity . quantity IS NOT NULL THEN
(
product_variation_quantity . quantity - product_variation_quantity . reserve
)
WHEN product_offer_quantity . quantity IS NOT NULL THEN
(
product_offer_quantity . quantity - product_offer_quantity . reserve
)
WHEN product_price . quantity IS NOT NULL THEN
(
product_price . quantity - product_price . reserve
)
ELSE
0
END > 0
)
GROUP BY
product_price . currency ,
product_offer_price . currency ,
product_variation_price . currency ,
product_modification_price . currency ,
product . id ,
product . event ,
product_trans . name ,
product_info . url ,
product_info . sort ,
product_active . active ,
product_active . active_from ,
product_active . active_to ,
category_offer . card ,
category_offer . reference ,
category_variation . card ,
category_variation . reference ,
category_modification . card ,
category_modification . reference ,
product_modification_image . name ,
product_variation_image . name ,
product_offer_images . name ,
product_photo . name ,
product_modification_image . ext ,
product_variation_image . ext ,
product_offer_images . ext ,
product_photo . ext ,
product_modification_image . cdn ,
product_variation_image . cdn ,
product_offer_images . cdn ,
product_photo . cdn ,
category_info . url ,
category_trans . name ,
project_profile_discount . value
ORDER BY
product_info . sort DESC ,
SUM (
product_modification_quantity . reserve
) DESC ,
SUM (
product_variation_quantity . reserve
) DESC ,
SUM (product_offer_quantity . reserve ) DESC ,
SUM (product_price . reserve ) DESC ,
SUM (
product_modification_quantity . quantity
) DESC ,
SUM (
product_variation_quantity . quantity
) DESC ,
SUM (
product_offer_quantity . quantity
) DESC ,
SUM (product_price . quantity ) DESC
LIMIT
6
Copy
SELECT product . id AS product_id , product . event AS product_event , product_trans . name AS product_name , product_info . url AS product_url , product_info . sort AS product_sort , product_active . active as product_active , product_active . active_from as product_active_from , product_active . active_to as product_active_to , category_offer . card AS category_offer_card , category_offer . reference AS product_offer_reference , category_variation . card AS category_variation_card , category_variation . reference as product_variation_reference , category_modification . card AS category_modification_card , category_modification . reference as product_modification_reference , JSON_AGG ( DISTINCT product_invariable . id ) AS invariable ,
CASE
WHEN product_modification_image . name IS NOT NULL THEN
CONCAT ( '/upload/product_modification_images' , '/' , product_modification_image . name )
WHEN product_variation_image . name IS NOT NULL THEN
CONCAT ( '/upload/product_variation_images' , '/' , product_variation_image . name )
WHEN product_offer_images . name IS NOT NULL THEN
CONCAT ( '/upload/product_offer_images' , '/' , product_offer_images . name )
WHEN product_photo . name IS NOT NULL THEN
CONCAT ( '/upload/product_photo' , '/' , product_photo . name )
ELSE NULL
END AS product_image
,
COALESCE (
product_modification_image . ext ,
product_variation_image . ext ,
product_offer_images . ext ,
product_photo . ext
) AS product_image_ext ,
COALESCE (
product_modification_image . cdn ,
product_variation_image . cdn ,
product_offer_images . cdn ,
product_photo . cdn
) AS product_image_cdn , category_info . url AS category_url , category_trans . name AS category_name ,
COALESCE (
NULLIF (MIN (product_modification_price . price ), 0 ),
NULLIF (MIN (product_variation_price . price ), 0 ),
NULLIF (MIN (product_offer_price . price ), 0 ),
NULLIF (MIN (product_price . price ), 0 ),
0
) AS product_price
,
CASE
WHEN MIN (product_modification_price . price ) IS NOT NULL
THEN product_modification_price . currency
WHEN MIN (product_variation_price . price ) IS NOT NULL
THEN product_variation_price . currency
WHEN MIN (product_offer_price . price ) IS NOT NULL
THEN product_offer_price . currency
WHEN MIN (product_price . price ) IS NOT NULL
THEN product_price . currency
ELSE NULL
END AS product_currency
, project_profile_discount . value AS project_discount FROM product INNER JOIN product_categories_product product_event_category ON product_event_category . event = product . event AND product_event_category . category IN ('0190ef2a-66cd-70ea-b793-2eb962175a4c' ) LEFT JOIN product_trans product_trans ON product_trans . event = product . event AND product_trans . local = 'ru' LEFT JOIN product_info product_info ON product_info . product = product . id LEFT JOIN product_active product_active ON product_active . event = product . event LEFT JOIN product_price product_price ON product_price . event = product . event AND product_price . price > 0 LEFT JOIN product_offer product_offer ON product_offer . event = product . event INNER JOIN users_profile project_profile ON
project_profile . id = '01982ecf-0a6a-79e5-967b-4992d1b836bb' LEFT JOIN product_category category ON category . id = product_event_category . category LEFT JOIN product_category_info category_info ON category_info . event = category . event AND category_info . active IS TRUE LEFT JOIN product_category_trans category_trans ON category_trans . event = category . event AND category_trans . local = 'ru' LEFT JOIN product_category_offers category_offer ON category_offer . id = product_offer . category_offer LEFT JOIN product_offer_price product_offer_price ON product_offer_price . offer = product_offer . id AND product_offer_price . price > 0 LEFT JOIN product_offer_quantity product_offer_quantity ON product_offer_quantity . offer = product_offer . id LEFT JOIN product_variation product_variation ON product_variation . offer = product_offer . id LEFT JOIN product_variation_images product_variation_image ON
product_variation_image . variation = product_variation . id AND
product_variation_image . root = true
LEFT JOIN product_offer_images product_offer_images ON
product_variation_image . name IS NULL AND
product_offer_images . offer = product_offer . id AND
product_offer_images . root = true
LEFT JOIN product_photo product_photo ON
product_offer_images . name IS NULL AND
product_photo . event = product . event AND
product_photo . root = true
LEFT JOIN product_category_variation category_variation ON category_variation . id = product_variation . category_variation LEFT JOIN product_modification product_modification ON product_modification . variation = product_variation . id LEFT JOIN product_invariable product_invariable ON
product_invariable . product = product . id
AND
CASE
WHEN product_offer . const IS NOT NULL THEN product_invariable . offer = product_offer . const
ELSE product_invariable . offer IS NULL
END
AND
CASE
WHEN product_variation . const IS NOT NULL THEN product_invariable . variation = product_variation . const
ELSE product_invariable . variation IS NULL
END
AND
CASE
WHEN product_modification . const IS NOT NULL THEN product_invariable . modification = product_modification . const
ELSE product_invariable . modification IS NULL
END
LEFT JOIN product_variation_price product_variation_price ON product_variation_price . variation = product_variation . id AND product_variation_price . price > 0 LEFT JOIN product_variation_quantity product_variation_quantity ON product_variation_quantity . variation = product_variation . id LEFT JOIN product_category_modification category_modification ON category_modification . id = product_modification . category_modification LEFT JOIN product_modification_price product_modification_price ON product_modification_price . modification = product_modification . id AND product_modification_price . price > 0 LEFT JOIN product_modification_quantity product_modification_quantity ON product_modification_quantity . modification = product_modification . id LEFT JOIN product_modification_images product_modification_image ON
product_modification_image . modification = product_modification . id AND
product_modification_image . root = true
LEFT JOIN user_profile_discount project_profile_discount ON
project_profile_discount . event = project_profile . event WHERE (COALESCE (
NULLIF (product_modification_price . price , 0 ),
NULLIF (product_variation_price . price , 0 ),
NULLIF (product_offer_price . price , 0 ),
NULLIF (product_price . price , 0 ),
0
) > 0 ) AND (
CASE
WHEN product_modification_quantity . quantity IS NOT NULL THEN (product_modification_quantity . quantity - product_modification_quantity . reserve )
WHEN product_variation_quantity . quantity IS NOT NULL THEN (product_variation_quantity . quantity - product_variation_quantity . reserve )
WHEN product_offer_quantity . quantity IS NOT NULL THEN (product_offer_quantity . quantity - product_offer_quantity . reserve )
WHEN product_price . quantity IS NOT NULL THEN (product_price . quantity - product_price . reserve )
ELSE 0
END > 0
) GROUP BY product_price . currency , product_offer_price . currency , product_variation_price . currency , product_modification_price . currency , product . id , product . event , product_trans . name , product_info . url , product_info . sort , product_active . active , product_active . active_from , product_active . active_to , category_offer . card , category_offer . reference , category_variation . card , category_variation . reference , category_modification . card , category_modification . reference , product_modification_image . name , product_variation_image . name , product_offer_images . name , product_photo . name , product_modification_image . ext , product_variation_image . ext , product_offer_images . ext , product_photo . ext , product_modification_image . cdn , product_variation_image . cdn , product_offer_images . cdn , product_photo . cdn , category_info . url , category_trans . name , project_profile_discount . value ORDER BY product_info . sort DESC , SUM (product_modification_quantity . reserve ) DESC , SUM (product_variation_quantity . reserve ) DESC , SUM (product_offer_quantity . reserve ) DESC , SUM (product_price . reserve ) DESC , SUM (product_modification_quantity . quantity ) DESC , SUM (product_variation_quantity . quantity ) DESC , SUM (product_offer_quantity . quantity ) DESC , SUM (product_price . quantity ) DESC LIMIT 6 ;
Copy
6
83.62 ms
SELECT product . id AS product_id , product . event AS product_event , product_trans . name AS product_name , product_info . url AS product_url , product_info . sort AS product_sort , product_active . active as product_active , product_active . active_from as product_active_from , product_active . active_to as product_active_to , category_offer . card AS category_offer_card , category_offer . reference AS product_offer_reference , category_variation . card AS category_variation_card , category_variation . reference as product_variation_reference , category_modification . card AS category_modification_card , category_modification . reference as product_modification_reference , JSON_AGG ( DISTINCT product_invariable . id ) AS invariable ,
CASE
WHEN product_modification_image . name IS NOT NULL THEN
CONCAT ( '/upload/product_modification_images' , '/' , product_modification_image . name )
WHEN product_variation_image . name IS NOT NULL THEN
CONCAT ( '/upload/product_variation_images' , '/' , product_variation_image . name )
WHEN product_offer_images . name IS NOT NULL THEN
CONCAT ( '/upload/product_offer_images' , '/' , product_offer_images . name )
WHEN product_photo . name IS NOT NULL THEN
CONCAT ( '/upload/product_photo' , '/' , product_photo . name )
ELSE NULL
END AS product_image
,
COALESCE (
product_modification_image . ext ,
product_variation_image . ext ,
product_offer_images . ext ,
product_photo . ext
) AS product_image_ext ,
COALESCE (
product_modification_image . cdn ,
product_variation_image . cdn ,
product_offer_images . cdn ,
product_photo . cdn
) AS product_image_cdn , category_info . url AS category_url , category_trans . name AS category_name ,
COALESCE (
NULLIF (MIN (product_modification_price . price ), 0 ),
NULLIF (MIN (product_variation_price . price ), 0 ),
NULLIF (MIN (product_offer_price . price ), 0 ),
NULLIF (MIN (product_price . price ), 0 ),
0
) AS product_price
,
CASE
WHEN MIN (product_modification_price . price ) IS NOT NULL
THEN product_modification_price . currency
WHEN MIN (product_variation_price . price ) IS NOT NULL
THEN product_variation_price . currency
WHEN MIN (product_offer_price . price ) IS NOT NULL
THEN product_offer_price . currency
WHEN MIN (product_price . price ) IS NOT NULL
THEN product_price . currency
ELSE NULL
END AS product_currency
, project_profile_discount . value AS project_discount FROM product INNER JOIN product_categories_product product_event_category ON product_event_category . event = product . event AND product_event_category . category IN (? ) LEFT JOIN product_trans product_trans ON product_trans . event = product . event AND product_trans . local = ? LEFT JOIN product_info product_info ON product_info . product = product . id LEFT JOIN product_active product_active ON product_active . event = product . event LEFT JOIN product_price product_price ON product_price . event = product . event AND product_price . price > 0 LEFT JOIN product_offer product_offer ON product_offer . event = product . event INNER JOIN users_profile project_profile ON
project_profile . id = ? LEFT JOIN product_category category ON category . id = product_event_category . category LEFT JOIN product_category_info category_info ON category_info . event = category . event AND category_info . active IS TRUE LEFT JOIN product_category_trans category_trans ON category_trans . event = category . event AND category_trans . local = ? LEFT JOIN product_category_offers category_offer ON category_offer . id = product_offer . category_offer LEFT JOIN product_offer_price product_offer_price ON product_offer_price . offer = product_offer . id AND product_offer_price . price > 0 LEFT JOIN product_offer_quantity product_offer_quantity ON product_offer_quantity . offer = product_offer . id LEFT JOIN product_variation product_variation ON product_variation . offer = product_offer . id LEFT JOIN product_variation_images product_variation_image ON
product_variation_image . variation = product_variation . id AND
product_variation_image . root = true
LEFT JOIN product_offer_images product_offer_images ON
product_variation_image . name IS NULL AND
product_offer_images . offer = product_offer . id AND
product_offer_images . root = true
LEFT JOIN product_photo product_photo ON
product_offer_images . name IS NULL AND
product_photo . event = product . event AND
product_photo . root = true
LEFT JOIN product_category_variation category_variation ON category_variation . id = product_variation . category_variation LEFT JOIN product_modification product_modification ON product_modification . variation = product_variation . id LEFT JOIN product_invariable product_invariable ON
product_invariable . product = product . id
AND
CASE
WHEN product_offer . const IS NOT NULL THEN product_invariable . offer = product_offer . const
ELSE product_invariable . offer IS NULL
END
AND
CASE
WHEN product_variation . const IS NOT NULL THEN product_invariable . variation = product_variation . const
ELSE product_invariable . variation IS NULL
END
AND
CASE
WHEN product_modification . const IS NOT NULL THEN product_invariable . modification = product_modification . const
ELSE product_invariable . modification IS NULL
END
LEFT JOIN product_variation_price product_variation_price ON product_variation_price . variation = product_variation . id AND product_variation_price . price > 0 LEFT JOIN product_variation_quantity product_variation_quantity ON product_variation_quantity . variation = product_variation . id LEFT JOIN product_category_modification category_modification ON category_modification . id = product_modification . category_modification LEFT JOIN product_modification_price product_modification_price ON product_modification_price . modification = product_modification . id AND product_modification_price . price > 0 LEFT JOIN product_modification_quantity product_modification_quantity ON product_modification_quantity . modification = product_modification . id LEFT JOIN product_modification_images product_modification_image ON
product_modification_image . modification = product_modification . id AND
product_modification_image . root = true
LEFT JOIN user_profile_discount project_profile_discount ON
project_profile_discount . event = project_profile . event WHERE (COALESCE (
NULLIF (product_modification_price . price , 0 ),
NULLIF (product_variation_price . price , 0 ),
NULLIF (product_offer_price . price , 0 ),
NULLIF (product_price . price , 0 ),
0
) > 0 ) AND (
CASE
WHEN product_modification_quantity . quantity IS NOT NULL THEN (product_modification_quantity . quantity - product_modification_quantity . reserve )
WHEN product_variation_quantity . quantity IS NOT NULL THEN (product_variation_quantity . quantity - product_variation_quantity . reserve )
WHEN product_offer_quantity . quantity IS NOT NULL THEN (product_offer_quantity . quantity - product_offer_quantity . reserve )
WHEN product_price . quantity IS NOT NULL THEN (product_price . quantity - product_price . reserve )
ELSE 0
END > 0
) GROUP BY product_price . currency , product_offer_price . currency , product_variation_price . currency , product_modification_price . currency , product . id , product . event , product_trans . name , product_info . url , product_info . sort , product_active . active , product_active . active_from , product_active . active_to , category_offer . card , category_offer . reference , category_variation . card , category_variation . reference , category_modification . card , category_modification . reference , product_modification_image . name , product_variation_image . name , product_offer_images . name , product_photo . name , product_modification_image . ext , product_variation_image . ext , product_offer_images . ext , product_photo . ext , product_modification_image . cdn , product_variation_image . cdn , product_offer_images . cdn , product_photo . cdn , category_info . url , category_trans . name , project_profile_discount . value ORDER BY product_info . sort DESC , SUM (product_modification_quantity . reserve ) DESC , SUM (product_variation_quantity . reserve ) DESC , SUM (product_offer_quantity . reserve ) DESC , SUM (product_price . reserve ) DESC , SUM (product_modification_quantity . quantity ) DESC , SUM (product_variation_quantity . quantity ) DESC , SUM (product_offer_quantity . quantity ) DESC , SUM (product_price . quantity ) DESC LIMIT 6
SELECT
product . id AS product_id ,
product . event AS product_event ,
product_trans . name AS product_name ,
product_info . url AS product_url ,
product_info . sort AS product_sort ,
product_active . active as product_active ,
product_active . active_from as product_active_from ,
product_active . active_to as product_active_to ,
category_offer . card AS category_offer_card ,
category_offer . reference AS product_offer_reference ,
category_variation . card AS category_variation_card ,
category_variation . reference as product_variation_reference ,
category_modification . card AS category_modification_card ,
category_modification . reference as product_modification_reference ,
JSON_AGG (DISTINCT product_invariable . id ) AS invariable ,
CASE WHEN product_modification_image . name IS NOT NULL THEN
CONCAT (
'/upload/product_modification_images' ,
'/' , product_modification_image . name
)
WHEN product_variation_image . name IS NOT NULL THEN
CONCAT (
'/upload/product_variation_images' ,
'/' , product_variation_image . name
)
WHEN product_offer_images . name IS NOT NULL THEN
CONCAT (
'/upload/product_offer_images' ,
'/' , product_offer_images . name
)
WHEN product_photo . name IS NOT NULL THEN
CONCAT (
'/upload/product_photo' , '/' , product_photo . name
)
ELSE
NULL
END AS product_image ,
COALESCE (
product_modification_image . ext ,
product_variation_image . ext , product_offer_images . ext ,
product_photo . ext
) AS product_image_ext ,
COALESCE (
product_modification_image . cdn ,
product_variation_image . cdn , product_offer_images . cdn ,
product_photo . cdn
) AS product_image_cdn ,
category_info . url AS category_url ,
category_trans . name AS category_name ,
COALESCE (
NULLIF (
MIN (
product_modification_price . price
),
0
),
NULLIF (
MIN (product_variation_price . price ),
0
),
NULLIF (
MIN (product_offer_price . price ),
0
),
NULLIF (
MIN (product_price . price ),
0
),
0
) AS product_price ,
CASE WHEN MIN (
product_modification_price . price
) IS NOT NULL THEN
product_modification_price . currency
WHEN MIN (product_variation_price . price ) IS NOT NULL THEN
product_variation_price . currency
WHEN MIN (product_offer_price . price ) IS NOT NULL THEN
product_offer_price . currency
WHEN MIN (product_price . price ) IS NOT NULL THEN
product_price . currency
ELSE
NULL
END AS product_currency ,
project_profile_discount . value AS project_discount
FROM
product
INNER JOIN product_categories_product product_event_category ON product_event_category . event = product . event
AND product_event_category . category IN (? )
LEFT JOIN product_trans product_trans ON product_trans . event = product . event
AND product_trans . local = ?
LEFT JOIN product_info product_info ON product_info . product = product . id
LEFT JOIN product_active product_active ON product_active . event = product . event
LEFT JOIN product_price product_price ON product_price . event = product . event
AND product_price . price > 0
LEFT JOIN product_offer product_offer ON product_offer . event = product . event
INNER JOIN users_profile project_profile ON project_profile . id = ?
LEFT JOIN product_category category ON category . id = product_event_category . category
LEFT JOIN product_category_info category_info ON category_info . event = category . event
AND category_info . active IS TRUE
LEFT JOIN product_category_trans category_trans ON category_trans . event = category . event
AND category_trans . local = ?
LEFT JOIN product_category_offers category_offer ON category_offer . id = product_offer . category_offer
LEFT JOIN product_offer_price product_offer_price ON product_offer_price . offer = product_offer . id
AND product_offer_price . price > 0
LEFT JOIN product_offer_quantity product_offer_quantity ON product_offer_quantity . offer = product_offer . id
LEFT JOIN product_variation product_variation ON product_variation . offer = product_offer . id
LEFT JOIN product_variation_images product_variation_image ON product_variation_image . variation = product_variation . id
AND product_variation_image . root = true
LEFT JOIN product_offer_images product_offer_images ON product_variation_image . name IS NULL
AND product_offer_images . offer = product_offer . id
AND product_offer_images . root = true
LEFT JOIN product_photo product_photo ON product_offer_images . name IS NULL
AND product_photo . event = product . event
AND product_photo . root = true
LEFT JOIN product_category_variation category_variation ON category_variation . id = product_variation . category_variation
LEFT JOIN product_modification product_modification ON product_modification . variation = product_variation . id
LEFT JOIN product_invariable product_invariable ON product_invariable . product = product . id
AND CASE WHEN product_offer . const IS NOT NULL THEN
product_invariable . offer = product_offer . const
ELSE
product_invariable . offer IS NULL
END
AND CASE WHEN product_variation . const IS NOT NULL THEN
product_invariable . variation = product_variation . const
ELSE
product_invariable . variation IS NULL
END
AND CASE WHEN product_modification . const IS NOT NULL THEN
product_invariable . modification = product_modification . const
ELSE
product_invariable . modification IS NULL
END
LEFT JOIN product_variation_price product_variation_price ON product_variation_price . variation = product_variation . id
AND product_variation_price . price > 0
LEFT JOIN product_variation_quantity product_variation_quantity ON product_variation_quantity . variation = product_variation . id
LEFT JOIN product_category_modification category_modification ON category_modification . id = product_modification . category_modification
LEFT JOIN product_modification_price product_modification_price ON product_modification_price . modification = product_modification . id
AND product_modification_price . price > 0
LEFT JOIN product_modification_quantity product_modification_quantity ON product_modification_quantity . modification = product_modification . id
LEFT JOIN product_modification_images product_modification_image ON product_modification_image . modification = product_modification . id
AND product_modification_image . root = true
LEFT JOIN user_profile_discount project_profile_discount ON project_profile_discount . event = project_profile . event
WHERE
(
COALESCE (
NULLIF (
product_modification_price . price ,
0
),
NULLIF (
product_variation_price . price , 0
),
NULLIF (product_offer_price . price , 0 ),
NULLIF (product_price . price , 0 ),
0
) > 0
)
AND (
CASE WHEN product_modification_quantity . quantity IS NOT NULL THEN
(
product_modification_quantity . quantity - product_modification_quantity . reserve
)
WHEN product_variation_quantity . quantity IS NOT NULL THEN
(
product_variation_quantity . quantity - product_variation_quantity . reserve
)
WHEN product_offer_quantity . quantity IS NOT NULL THEN
(
product_offer_quantity . quantity - product_offer_quantity . reserve
)
WHEN product_price . quantity IS NOT NULL THEN
(
product_price . quantity - product_price . reserve
)
ELSE
0
END > 0
)
GROUP BY
product_price . currency ,
product_offer_price . currency ,
product_variation_price . currency ,
product_modification_price . currency ,
product . id ,
product . event ,
product_trans . name ,
product_info . url ,
product_info . sort ,
product_active . active ,
product_active . active_from ,
product_active . active_to ,
category_offer . card ,
category_offer . reference ,
category_variation . card ,
category_variation . reference ,
category_modification . card ,
category_modification . reference ,
product_modification_image . name ,
product_variation_image . name ,
product_offer_images . name ,
product_photo . name ,
product_modification_image . ext ,
product_variation_image . ext ,
product_offer_images . ext ,
product_photo . ext ,
product_modification_image . cdn ,
product_variation_image . cdn ,
product_offer_images . cdn ,
product_photo . cdn ,
category_info . url ,
category_trans . name ,
project_profile_discount . value
ORDER BY
product_info . sort DESC ,
SUM (
product_modification_quantity . reserve
) DESC ,
SUM (
product_variation_quantity . reserve
) DESC ,
SUM (product_offer_quantity . reserve ) DESC ,
SUM (product_price . reserve ) DESC ,
SUM (
product_modification_quantity . quantity
) DESC ,
SUM (
product_variation_quantity . quantity
) DESC ,
SUM (
product_offer_quantity . quantity
) DESC ,
SUM (product_price . quantity ) DESC
LIMIT
6
Copy
SELECT product . id AS product_id , product . event AS product_event , product_trans . name AS product_name , product_info . url AS product_url , product_info . sort AS product_sort , product_active . active as product_active , product_active . active_from as product_active_from , product_active . active_to as product_active_to , category_offer . card AS category_offer_card , category_offer . reference AS product_offer_reference , category_variation . card AS category_variation_card , category_variation . reference as product_variation_reference , category_modification . card AS category_modification_card , category_modification . reference as product_modification_reference , JSON_AGG ( DISTINCT product_invariable . id ) AS invariable ,
CASE
WHEN product_modification_image . name IS NOT NULL THEN
CONCAT ( '/upload/product_modification_images' , '/' , product_modification_image . name )
WHEN product_variation_image . name IS NOT NULL THEN
CONCAT ( '/upload/product_variation_images' , '/' , product_variation_image . name )
WHEN product_offer_images . name IS NOT NULL THEN
CONCAT ( '/upload/product_offer_images' , '/' , product_offer_images . name )
WHEN product_photo . name IS NOT NULL THEN
CONCAT ( '/upload/product_photo' , '/' , product_photo . name )
ELSE NULL
END AS product_image
,
COALESCE (
product_modification_image . ext ,
product_variation_image . ext ,
product_offer_images . ext ,
product_photo . ext
) AS product_image_ext ,
COALESCE (
product_modification_image . cdn ,
product_variation_image . cdn ,
product_offer_images . cdn ,
product_photo . cdn
) AS product_image_cdn , category_info . url AS category_url , category_trans . name AS category_name ,
COALESCE (
NULLIF (MIN (product_modification_price . price ), 0 ),
NULLIF (MIN (product_variation_price . price ), 0 ),
NULLIF (MIN (product_offer_price . price ), 0 ),
NULLIF (MIN (product_price . price ), 0 ),
0
) AS product_price
,
CASE
WHEN MIN (product_modification_price . price ) IS NOT NULL
THEN product_modification_price . currency
WHEN MIN (product_variation_price . price ) IS NOT NULL
THEN product_variation_price . currency
WHEN MIN (product_offer_price . price ) IS NOT NULL
THEN product_offer_price . currency
WHEN MIN (product_price . price ) IS NOT NULL
THEN product_price . currency
ELSE NULL
END AS product_currency
, project_profile_discount . value AS project_discount FROM product INNER JOIN product_categories_product product_event_category ON product_event_category . event = product . event AND product_event_category . category IN ('01924385-2099-71c1-a793-c114a808e485' ) LEFT JOIN product_trans product_trans ON product_trans . event = product . event AND product_trans . local = 'ru' LEFT JOIN product_info product_info ON product_info . product = product . id LEFT JOIN product_active product_active ON product_active . event = product . event LEFT JOIN product_price product_price ON product_price . event = product . event AND product_price . price > 0 LEFT JOIN product_offer product_offer ON product_offer . event = product . event INNER JOIN users_profile project_profile ON
project_profile . id = '01982ecf-0a6a-79e5-967b-4992d1b836bb' LEFT JOIN product_category category ON category . id = product_event_category . category LEFT JOIN product_category_info category_info ON category_info . event = category . event AND category_info . active IS TRUE LEFT JOIN product_category_trans category_trans ON category_trans . event = category . event AND category_trans . local = 'ru' LEFT JOIN product_category_offers category_offer ON category_offer . id = product_offer . category_offer LEFT JOIN product_offer_price product_offer_price ON product_offer_price . offer = product_offer . id AND product_offer_price . price > 0 LEFT JOIN product_offer_quantity product_offer_quantity ON product_offer_quantity . offer = product_offer . id LEFT JOIN product_variation product_variation ON product_variation . offer = product_offer . id LEFT JOIN product_variation_images product_variation_image ON
product_variation_image . variation = product_variation . id AND
product_variation_image . root = true
LEFT JOIN product_offer_images product_offer_images ON
product_variation_image . name IS NULL AND
product_offer_images . offer = product_offer . id AND
product_offer_images . root = true
LEFT JOIN product_photo product_photo ON
product_offer_images . name IS NULL AND
product_photo . event = product . event AND
product_photo . root = true
LEFT JOIN product_category_variation category_variation ON category_variation . id = product_variation . category_variation LEFT JOIN product_modification product_modification ON product_modification . variation = product_variation . id LEFT JOIN product_invariable product_invariable ON
product_invariable . product = product . id
AND
CASE
WHEN product_offer . const IS NOT NULL THEN product_invariable . offer = product_offer . const
ELSE product_invariable . offer IS NULL
END
AND
CASE
WHEN product_variation . const IS NOT NULL THEN product_invariable . variation = product_variation . const
ELSE product_invariable . variation IS NULL
END
AND
CASE
WHEN product_modification . const IS NOT NULL THEN product_invariable . modification = product_modification . const
ELSE product_invariable . modification IS NULL
END
LEFT JOIN product_variation_price product_variation_price ON product_variation_price . variation = product_variation . id AND product_variation_price . price > 0 LEFT JOIN product_variation_quantity product_variation_quantity ON product_variation_quantity . variation = product_variation . id LEFT JOIN product_category_modification category_modification ON category_modification . id = product_modification . category_modification LEFT JOIN product_modification_price product_modification_price ON product_modification_price . modification = product_modification . id AND product_modification_price . price > 0 LEFT JOIN product_modification_quantity product_modification_quantity ON product_modification_quantity . modification = product_modification . id LEFT JOIN product_modification_images product_modification_image ON
product_modification_image . modification = product_modification . id AND
product_modification_image . root = true
LEFT JOIN user_profile_discount project_profile_discount ON
project_profile_discount . event = project_profile . event WHERE (COALESCE (
NULLIF (product_modification_price . price , 0 ),
NULLIF (product_variation_price . price , 0 ),
NULLIF (product_offer_price . price , 0 ),
NULLIF (product_price . price , 0 ),
0
) > 0 ) AND (
CASE
WHEN product_modification_quantity . quantity IS NOT NULL THEN (product_modification_quantity . quantity - product_modification_quantity . reserve )
WHEN product_variation_quantity . quantity IS NOT NULL THEN (product_variation_quantity . quantity - product_variation_quantity . reserve )
WHEN product_offer_quantity . quantity IS NOT NULL THEN (product_offer_quantity . quantity - product_offer_quantity . reserve )
WHEN product_price . quantity IS NOT NULL THEN (product_price . quantity - product_price . reserve )
ELSE 0
END > 0
) GROUP BY product_price . currency , product_offer_price . currency , product_variation_price . currency , product_modification_price . currency , product . id , product . event , product_trans . name , product_info . url , product_info . sort , product_active . active , product_active . active_from , product_active . active_to , category_offer . card , category_offer . reference , category_variation . card , category_variation . reference , category_modification . card , category_modification . reference , product_modification_image . name , product_variation_image . name , product_offer_images . name , product_photo . name , product_modification_image . ext , product_variation_image . ext , product_offer_images . ext , product_photo . ext , product_modification_image . cdn , product_variation_image . cdn , product_offer_images . cdn , product_photo . cdn , category_info . url , category_trans . name , project_profile_discount . value ORDER BY product_info . sort DESC , SUM (product_modification_quantity . reserve ) DESC , SUM (product_variation_quantity . reserve ) DESC , SUM (product_offer_quantity . reserve ) DESC , SUM (product_price . reserve ) DESC , SUM (product_modification_quantity . quantity ) DESC , SUM (product_variation_quantity . quantity ) DESC , SUM (product_offer_quantity . quantity ) DESC , SUM (product_price . quantity ) DESC LIMIT 6 ;
Copy
7
0.87 ms
SELECT t0 . product AS product_1 , t0 . url AS url_2 , t0 . article AS article_3 , t0 . barcode AS barcode_4 , t0 . sort AS sort_5 , t0 . profile AS profile_6 , t0 . event AS event_7 FROM product_info t0 WHERE t0 . url = ? LIMIT 1
Parameters :
[
"westlake_z507_zupersnow "
]
SELECT t0 . product AS product_1 , t0 . url AS url_2 , t0 . article AS article_3 , t0 . barcode AS barcode_4 , t0 . sort AS sort_5 , t0 . profile AS profile_6 , t0 . event AS event_7 FROM product_info t0 WHERE t0 . url = 'westlake_z507_zupersnow' LIMIT 1 ;
Copy
8
79.33 ms
SELECT product . id , product . event , product_active . active , product_active . active_from , product_active . active_to , ? AS project_profile , JSON_AGG (DISTINCT product_profile . value ) FILTER (WHERE product_profile . value IS NOT NULL ) AS profiles , product_seo . title AS seo_title , product_seo . keywords AS seo_keywords , product_seo . description AS seo_description , product_trans . name AS product_name , product_desc . preview AS product_preview , product_desc . description AS product_description , product_info . url , category_offer . reference AS product_offer_reference , project_profile_discount . value AS project_discount , JSON_AGG
( DISTINCT
JSONB_BUILD_OBJECT
(
'0' , CONCAT (product_offer . value , product_variation . value , product_modification . value , product_modification_price . price ),
'offer_uid' , product_offer . id ,
'offer_value' , product_offer . value ,
'offer_postfix' , product_offer . postfix ,
'offer_reference' , category_offer . reference ,
'offer_name' , category_offer_trans . name ,
'variation_uid' , product_variation . id ,
'variation_value' , product_variation . value ,
'variation_postfix' , product_variation . postfix ,
'variation_reference' , category_variation . reference ,
'variation_name' , category_variation_trans . name ,
'modification_uid' , product_modification . id ,
'modification_value' , product_modification . value ,
'modification_postfix' , product_modification . postfix ,
'modification_reference' , category_modification . reference ,
'modification_name' , category_modification_trans . name ,
'article' , CASE
WHEN product_modification . article IS NOT NULL THEN product_modification . article
WHEN product_variation . article IS NOT NULL THEN product_variation . article
WHEN product_offer . article IS NOT NULL THEN product_offer . article
WHEN product_info . article IS NOT NULL THEN product_info . article
ELSE NULL
END ,
'product_invariable_id' , COALESCE (
product_invariable . id
),
'profile_discount' , NULL ,
'project_discount' , project_profile_discount . value ,
'promotion_price' , NULL ,
'promotion_active' , NULL ,
'price' , CASE
WHEN product_modification_price . price IS NOT NULL AND product_modification_price . price > 0 THEN product_modification_price . price
WHEN product_variation_price . price IS NOT NULL AND product_variation_price . price > 0 THEN product_variation_price . price
WHEN product_offer_price . price IS NOT NULL AND product_offer_price . price > 0 THEN product_offer_price . price
WHEN product_price . price IS NOT NULL AND product_price . price > 0 THEN product_price . price
ELSE NULL
END ,
'old_price' , COALESCE (
NULLIF (product_modification_price . old , 0 ),
NULLIF (product_variation_price . old , 0 ),
NULLIF (product_offer_price . old , 0 ),
NULLIF (product_price . old , 0 ),
0
),
'currency' , CASE
WHEN product_modification_price . price IS NOT NULL AND product_modification_price . price > 0 THEN product_modification_price . currency
WHEN product_variation_price . price IS NOT NULL AND product_variation_price . price > 0 THEN product_variation_price . currency
WHEN product_offer_price . price IS NOT NULL AND product_offer_price . price > 0 THEN product_offer_price . currency
WHEN product_price . price IS NOT NULL AND product_price . price > 0 THEN product_price . currency
ELSE NULL
END ,
'quantity' , CASE
WHEN product_modification_quantity . quantity IS NOT NULL THEN (product_modification_quantity . quantity - product_modification_quantity . reserve )
WHEN product_variation_quantity . quantity IS NOT NULL THEN (product_variation_quantity . quantity - product_variation_quantity . reserve )
WHEN product_offer_quantity . quantity IS NOT NULL THEN (product_offer_quantity . quantity - product_offer_quantity . reserve )
WHEN product_price . quantity IS NOT NULL THEN (product_price . quantity - product_price . reserve )
ELSE NULL
END
)
)
FILTER (WHERE
CASE
WHEN product_modification_price . price IS NOT NULL AND product_modification_price . price > 0 THEN product_modification_price . price
WHEN product_variation_price . price IS NOT NULL AND product_variation_price . price > 0 THEN product_variation_price . price
WHEN product_offer_price . price IS NOT NULL AND product_offer_price . price > 0 THEN product_offer_price . price
WHEN product_price . price IS NOT NULL AND product_price . price > 0 THEN product_price . price
ELSE 0
END > 0 )
AS product_offers ,
JSON_AGG
(DISTINCT
CASE
WHEN product_modification_image . ext IS NOT NULL THEN
JSONB_BUILD_OBJECT
(
'product_img_root' , product_modification_image . root ,
'product_img' , CONCAT ( '/upload/product_modification_images' , '/' , product_modification_image . name ),
'product_img_ext' , product_modification_image . ext ,
'product_img_cdn' , product_modification_image . cdn
)
WHEN product_variation_image . ext IS NOT NULL THEN
JSONB_BUILD_OBJECT
(
'product_img_root' , product_variation_image . root ,
'product_img' , CONCAT ( '/upload/product_variation_images' , '/' , product_variation_image . name ),
'product_img_ext' , product_variation_image . ext ,
'product_img_cdn' , product_variation_image . cdn
)
WHEN product_offer_images . ext IS NOT NULL THEN
JSONB_BUILD_OBJECT
(
'product_img_root' , product_offer_images . root ,
'product_img' , CONCAT ( '/upload/product_offer_images' , '/' , product_offer_images . name ),
'product_img_ext' , product_offer_images . ext ,
'product_img_cdn' , product_offer_images . cdn
)
WHEN product_photo . ext IS NOT NULL THEN
JSONB_BUILD_OBJECT
(
'product_img_root' , product_photo . root ,
'product_img' , CONCAT ( '/upload/product_photo' , '/' , product_photo . name ),
'product_img_ext' , product_photo . ext ,
'product_img_cdn' , product_photo . cdn
)
ELSE NULL
END )
AS product_images , category . id as category_id , category_trans . name AS category_name , category_info . url AS category_url , category_info . threshold AS category_threshold , category_cover . ext AS category_cover_ext , category_cover . cdn AS category_cover_cdn ,
CASE
WHEN category_cover . name IS NOT NULL
THEN CONCAT ( '/upload/product_category_cover' , '/' , category_cover . name )
ELSE NULL
END AS category_cover_dir , JSON_AGG
( DISTINCT
JSONB_BUILD_OBJECT
(
'0' , category_section_field . sort ,
'field_name' , category_section_field . name ,
'field_public' , category_section_field . public ,
'field_card' , category_section_field . card ,
'field_type' , category_section_field . type ,
'field_trans' , category_section_field_trans . name ,
'field_value' , product_property . value
)
)
AS category_section_field FROM product INNER JOIN product_active product_active ON product_active . event = product . event LEFT JOIN product_profile product_profile ON product_profile . event = product . event LEFT JOIN product_seo product_seo ON product_seo . event = product . event AND product_seo . local = ? LEFT JOIN product_trans product_trans ON product_trans . event = product . event AND product_trans . local = ? LEFT JOIN product_description product_desc ON product_desc . event = product . event AND product_desc . device = ? LEFT JOIN product_price product_price ON product_price . event = product . event LEFT JOIN product_info product_info ON product_info . product = product . id LEFT JOIN product_offer product_offer ON product_offer . event = product . event INNER JOIN users_profile project_profile ON
project_profile . id = ? INNER JOIN product_categories_product product_event_category ON product_event_category . event = product . event AND product_event_category . root = true LEFT JOIN product_category_offers category_offer ON category_offer . id = product_offer . category_offer LEFT JOIN product_offer_price product_offer_price ON product_offer_price . offer = (SELECT tmp_product_offer_price . offer FROM product_offer_price tmp_product_offer_price WHERE tmp_product_offer_price . offer = product_offer . id ORDER BY tmp_product_offer_price . offer DESC LIMIT 1 ) LEFT JOIN product_offer_quantity product_offer_quantity ON product_offer_quantity . offer = product_offer . id LEFT JOIN product_variation product_variation ON product_variation . offer = product_offer . id LEFT JOIN product_photo product_photo ON product_photo . event = product . event LEFT JOIN product_offer_images product_offer_images ON product_offer_images . offer = product_offer . id LEFT JOIN product_variation_images product_variation_image ON product_variation_image . variation = product_variation . id LEFT JOIN product_category_offers_trans category_offer_trans ON category_offer_trans . offer = category_offer . id AND category_offer_trans . local = ? LEFT JOIN product_category_variation category_variation ON category_variation . id = product_variation . category_variation LEFT JOIN product_variation_price product_variation_price ON product_variation_price . variation = (SELECT tmp_product_variation_price . variation FROM product_variation_price tmp_product_variation_price WHERE tmp_product_variation_price . variation = product_variation . id ORDER BY tmp_product_variation_price . variation DESC LIMIT 1 ) LEFT JOIN product_modification product_modification ON product_modification . variation = product_variation . id LEFT JOIN product_category_variation_trans category_variation_trans ON category_variation_trans . variation = category_variation . id AND category_variation_trans . local = ? LEFT JOIN product_variation_quantity product_variation_quantity ON product_variation_quantity . variation = product_variation . id LEFT JOIN product_category_modification category_modification ON category_modification . id = product_modification . category_modification LEFT JOIN product_modification_price product_modification_price ON product_modification_price . modification = (SELECT tmp_product_modification_price . modification FROM product_modification_price tmp_product_modification_price WHERE tmp_product_modification_price . modification = product_modification . id ORDER BY tmp_product_modification_price . modification DESC LIMIT 1 ) LEFT JOIN product_invariable product_invariable ON
product_invariable . product = product . id AND
(
(product_offer . const IS NOT NULL AND product_invariable . offer = product_offer . const ) OR
(product_offer . const IS NULL AND product_invariable . offer IS NULL )
)
AND
(
(product_variation . const IS NOT NULL AND product_invariable . variation = product_variation . const ) OR
(product_variation . const IS NULL AND product_invariable . variation IS NULL )
)
AND
(
(product_modification . const IS NOT NULL AND product_invariable . modification = product_modification . const ) OR
(product_modification . const IS NULL AND product_invariable . modification IS NULL )
)
LEFT JOIN product_modification_images product_modification_image ON product_modification_image . modification = product_modification . id LEFT JOIN product_category_modification_trans category_modification_trans ON category_modification_trans . modification = category_modification . id AND category_modification_trans . local = ? LEFT JOIN product_modification_quantity product_modification_quantity ON product_modification_quantity . modification = product_modification . id LEFT JOIN user_profile_discount project_profile_discount ON
project_profile_discount . event = project_profile . event INNER JOIN product_category category ON category . id = product_event_category . category LEFT JOIN product_category_trans category_trans ON category_trans . event = category . event AND category_trans . local = ? LEFT JOIN product_category_info category_info ON category_info . event = category . event LEFT JOIN product_category_section category_section ON category_section . event = category . event LEFT JOIN product_category_cover category_cover ON category_cover . event = category . event LEFT JOIN product_category_section_field category_section_field ON category_section_field . section = category_section . id LEFT JOIN product_category_section_field_trans category_section_field_trans ON category_section_field_trans . field = category_section_field . id AND category_section_field_trans . local = ? LEFT JOIN product_property product_property ON product_property . event = product . event AND product_property . field = category_section_field . const WHERE product . id = ? GROUP BY category . id , product . id , product . event , product_active . active , product_active . active_from , product_active . active_to , product_seo . title , product_seo . keywords , product_seo . description , product_trans . name , product_desc . preview , product_desc . description , product_info . url , category_offer . reference , project_profile_discount . value , category . id , category_trans . name , category_info . url , category_info . threshold , category_cover . ext , category_cover . cdn , category_cover . name
Parameters :
[
"01982ecf-0a6a-79e5-967b-4992d1b836bb "
"ru "
"ru "
"pc "
"01982ecf-0a6a-79e5-967b-4992d1b836bb "
"ru "
"ru "
"ru "
"ru "
"ru "
"0191c806-5685-7317-af20-94d13dc4e9dc "
]
SELECT
product . id ,
product . event ,
product_active . active ,
product_active . active_from ,
product_active . active_to ,
? AS project_profile ,
JSON_AGG (DISTINCT product_profile . value ) FILTER (
WHERE
product_profile . value IS NOT NULL
) AS profiles ,
product_seo . title AS seo_title ,
product_seo . keywords AS seo_keywords ,
product_seo . description AS seo_description ,
product_trans . name AS product_name ,
product_desc . preview AS product_preview ,
product_desc . description AS product_description ,
product_info . url ,
category_offer . reference AS product_offer_reference ,
project_profile_discount . value AS project_discount ,
JSON_AGG (
DISTINCT JSONB_BUILD_OBJECT (
'0' ,
CONCAT (
product_offer . value , product_variation . value ,
product_modification . value , product_modification_price . price
),
'offer_uid' ,
product_offer . id ,
'offer_value' ,
product_offer . value ,
'offer_postfix' ,
product_offer . postfix ,
'offer_reference' ,
category_offer . reference ,
'offer_name' ,
category_offer_trans . name ,
'variation_uid' ,
product_variation . id ,
'variation_value' ,
product_variation . value ,
'variation_postfix' ,
product_variation . postfix ,
'variation_reference' ,
category_variation . reference ,
'variation_name' ,
category_variation_trans . name ,
'modification_uid' ,
product_modification . id ,
'modification_value' ,
product_modification . value ,
'modification_postfix' ,
product_modification . postfix ,
'modification_reference' ,
category_modification . reference ,
'modification_name' ,
category_modification_trans . name ,
'article' ,
CASE WHEN product_modification . article IS NOT NULL THEN
product_modification . article
WHEN product_variation . article IS NOT NULL THEN
product_variation . article
WHEN product_offer . article IS NOT NULL THEN
product_offer . article
WHEN product_info . article IS NOT NULL THEN
product_info . article
ELSE
NULL
END ,
'product_invariable_id' ,
COALESCE (product_invariable . id ),
'profile_discount' ,
NULL ,
'project_discount' ,
project_profile_discount . value ,
'promotion_price' ,
NULL ,
'promotion_active' ,
NULL ,
'price' ,
CASE WHEN product_modification_price . price IS NOT NULL
AND product_modification_price . price > 0 THEN
product_modification_price . price
WHEN product_variation_price . price IS NOT NULL
AND product_variation_price . price > 0 THEN
product_variation_price . price
WHEN product_offer_price . price IS NOT NULL
AND product_offer_price . price > 0 THEN
product_offer_price . price
WHEN product_price . price IS NOT NULL
AND product_price . price > 0 THEN
product_price . price
ELSE
NULL
END ,
'old_price' ,
COALESCE (
NULLIF (
product_modification_price . old ,
0
),
NULLIF (product_variation_price . old , 0 ),
NULLIF (product_offer_price . old , 0 ),
NULLIF (product_price . old , 0 ),
0
),
'currency' ,
CASE WHEN product_modification_price . price IS NOT NULL
AND product_modification_price . price > 0 THEN
product_modification_price . currency
WHEN product_variation_price . price IS NOT NULL
AND product_variation_price . price > 0 THEN
product_variation_price . currency
WHEN product_offer_price . price IS NOT NULL
AND product_offer_price . price > 0 THEN
product_offer_price . currency
WHEN product_price . price IS NOT NULL
AND product_price . price > 0 THEN
product_price . currency
ELSE
NULL
END ,
'quantity' ,
CASE WHEN product_modification_quantity . quantity IS NOT NULL THEN
(
product_modification_quantity . quantity - product_modification_quantity . reserve
)
WHEN product_variation_quantity . quantity IS NOT NULL THEN
(
product_variation_quantity . quantity - product_variation_quantity . reserve
)
WHEN product_offer_quantity . quantity IS NOT NULL THEN
(
product_offer_quantity . quantity - product_offer_quantity . reserve
)
WHEN product_price . quantity IS NOT NULL THEN
(
product_price . quantity - product_price . reserve
)
ELSE
NULL
END
)
)
FILTER (
WHERE
CASE WHEN product_modification_price . price IS NOT NULL
AND product_modification_price . price > 0 THEN
product_modification_price . price
WHEN product_variation_price . price IS NOT NULL
AND product_variation_price . price > 0 THEN
product_variation_price . price
WHEN product_offer_price . price IS NOT NULL
AND product_offer_price . price > 0 THEN
product_offer_price . price
WHEN product_price . price IS NOT NULL
AND product_price . price > 0 THEN
product_price . price
ELSE
0
END > 0
) AS product_offers ,
JSON_AGG (
DISTINCT CASE WHEN product_modification_image . ext IS NOT NULL THEN
JSONB_BUILD_OBJECT (
'product_img_root' ,
product_modification_image . root ,
'product_img' ,
CONCAT (
'/upload/product_modification_images' ,
'/' , product_modification_image . name
),
'product_img_ext' ,
product_modification_image . ext ,
'product_img_cdn' ,
product_modification_image . cdn
)
WHEN product_variation_image . ext IS NOT NULL THEN
JSONB_BUILD_OBJECT (
'product_img_root' ,
product_variation_image . root ,
'product_img' ,
CONCAT (
'/upload/product_variation_images' ,
'/' , product_variation_image . name
),
'product_img_ext' ,
product_variation_image . ext ,
'product_img_cdn' ,
product_variation_image . cdn
)
WHEN product_offer_images . ext IS NOT NULL THEN
JSONB_BUILD_OBJECT (
'product_img_root' ,
product_offer_images . root ,
'product_img' ,
CONCAT (
'/upload/product_offer_images' ,
'/' , product_offer_images . name
),
'product_img_ext' ,
product_offer_images . ext ,
'product_img_cdn' ,
product_offer_images . cdn
)
WHEN product_photo . ext IS NOT NULL THEN
JSONB_BUILD_OBJECT (
'product_img_root' ,
product_photo . root ,
'product_img' ,
CONCAT (
'/upload/product_photo' , '/' , product_photo . name
),
'product_img_ext' ,
product_photo . ext ,
'product_img_cdn' ,
product_photo . cdn
)
ELSE
NULL
END
) AS product_images ,
category . id as category_id ,
category_trans . name AS category_name ,
category_info . url AS category_url ,
category_info . threshold AS category_threshold ,
category_cover . ext AS category_cover_ext ,
category_cover . cdn AS category_cover_cdn ,
CASE WHEN category_cover . name IS NOT NULL THEN
CONCAT (
'/upload/product_category_cover' ,
'/' , category_cover . name
)
ELSE
NULL
END AS category_cover_dir ,
JSON_AGG (
DISTINCT JSONB_BUILD_OBJECT (
'0' , category_section_field . sort ,
'field_name' , category_section_field . name ,
'field_public' , category_section_field . public ,
'field_card' , category_section_field . card ,
'field_type' , category_section_field . type ,
'field_trans' , category_section_field_trans . name ,
'field_value' , product_property . value
)
) AS category_section_field
FROM
product
INNER JOIN product_active product_active ON product_active . event = product . event
LEFT JOIN product_profile product_profile ON product_profile . event = product . event
LEFT JOIN product_seo product_seo ON product_seo . event = product . event
AND product_seo . local = ?
LEFT JOIN product_trans product_trans ON product_trans . event = product . event
AND product_trans . local = ?
LEFT JOIN product_description product_desc ON product_desc . event = product . event
AND product_desc . device = ?
LEFT JOIN product_price product_price ON product_price . event = product . event
LEFT JOIN product_info product_info ON product_info . product = product . id
LEFT JOIN product_offer product_offer ON product_offer . event = product . event
INNER JOIN users_profile project_profile ON project_profile . id = ?
INNER JOIN product_categories_product product_event_category ON product_event_category . event = product . event
AND product_event_category . root = true
LEFT JOIN product_category_offers category_offer ON category_offer . id = product_offer . category_offer
LEFT JOIN product_offer_price product_offer_price ON product_offer_price . offer = (
SELECT
tmp_product_offer_price . offer
FROM
product_offer_price tmp_product_offer_price
WHERE
tmp_product_offer_price . offer = product_offer . id
ORDER BY
tmp_product_offer_price . offer DESC
LIMIT
1
) LEFT JOIN product_offer_quantity product_offer_quantity ON product_offer_quantity . offer = product_offer . id
LEFT JOIN product_variation product_variation ON product_variation . offer = product_offer . id
LEFT JOIN product_photo product_photo ON product_photo . event = product . event
LEFT JOIN product_offer_images product_offer_images ON product_offer_images . offer = product_offer . id
LEFT JOIN product_variation_images product_variation_image ON product_variation_image . variation = product_variation . id
LEFT JOIN product_category_offers_trans category_offer_trans ON category_offer_trans . offer = category_offer . id
AND category_offer_trans . local = ?
LEFT JOIN product_category_variation category_variation ON category_variation . id = product_variation . category_variation
LEFT JOIN product_variation_price product_variation_price ON product_variation_price . variation = (
SELECT
tmp_product_variation_price . variation
FROM
product_variation_price tmp_product_variation_price
WHERE
tmp_product_variation_price . variation = product_variation . id
ORDER BY
tmp_product_variation_price . variation DESC
LIMIT
1
) LEFT JOIN product_modification product_modification ON product_modification . variation = product_variation . id
LEFT JOIN product_category_variation_trans category_variation_trans ON category_variation_trans . variation = category_variation . id
AND category_variation_trans . local = ?
LEFT JOIN product_variation_quantity product_variation_quantity ON product_variation_quantity . variation = product_variation . id
LEFT JOIN product_category_modification category_modification ON category_modification . id = product_modification . category_modification
LEFT JOIN product_modification_price product_modification_price ON product_modification_price . modification = (
SELECT
tmp_product_modification_price . modification
FROM
product_modification_price tmp_product_modification_price
WHERE
tmp_product_modification_price . modification = product_modification . id
ORDER BY
tmp_product_modification_price . modification DESC
LIMIT
1
) LEFT JOIN product_invariable product_invariable ON product_invariable . product = product . id
AND (
(
product_offer . const IS NOT NULL
AND product_invariable . offer = product_offer . const
)
OR (
product_offer . const IS NULL
AND product_invariable . offer IS NULL
)
)
AND (
(
product_variation . const IS NOT NULL
AND product_invariable . variation = product_variation . const
)
OR (
product_variation . const IS NULL
AND product_invariable . variation IS NULL
)
)
AND (
(
product_modification . const IS NOT NULL
AND product_invariable . modification = product_modification . const
)
OR (
product_modification . const IS NULL
AND product_invariable . modification IS NULL
)
)
LEFT JOIN product_modification_images product_modification_image ON product_modification_image . modification = product_modification . id
LEFT JOIN product_category_modification_trans category_modification_trans ON category_modification_trans . modification = category_modification . id
AND category_modification_trans . local = ?
LEFT JOIN product_modification_quantity product_modification_quantity ON product_modification_quantity . modification = product_modification . id
LEFT JOIN user_profile_discount project_profile_discount ON project_profile_discount . event = project_profile . event
INNER JOIN product_category category ON category . id = product_event_category . category
LEFT JOIN product_category_trans category_trans ON category_trans . event = category . event
AND category_trans . local = ?
LEFT JOIN product_category_info category_info ON category_info . event = category . event
LEFT JOIN product_category_section category_section ON category_section . event = category . event
LEFT JOIN product_category_cover category_cover ON category_cover . event = category . event
LEFT JOIN product_category_section_field category_section_field ON category_section_field . section = category_section . id
LEFT JOIN product_category_section_field_trans category_section_field_trans ON category_section_field_trans . field = category_section_field . id
AND category_section_field_trans . local = ?
LEFT JOIN product_property product_property ON product_property . event = product . event
AND product_property . field = category_section_field . const
WHERE
product . id = ?
GROUP BY
category . id ,
product . id ,
product . event ,
product_active . active ,
product_active . active_from ,
product_active . active_to ,
product_seo . title ,
product_seo . keywords ,
product_seo . description ,
product_trans . name ,
product_desc . preview ,
product_desc . description ,
product_info . url ,
category_offer . reference ,
project_profile_discount . value ,
category . id ,
category_trans . name ,
category_info . url ,
category_info . threshold ,
category_cover . ext ,
category_cover . cdn ,
category_cover . name
Copy
SELECT product . id , product . event , product_active . active , product_active . active_from , product_active . active_to , '01982ecf-0a6a-79e5-967b-4992d1b836bb' AS project_profile , JSON_AGG (DISTINCT product_profile . value ) FILTER (WHERE product_profile . value IS NOT NULL ) AS profiles , product_seo . title AS seo_title , product_seo . keywords AS seo_keywords , product_seo . description AS seo_description , product_trans . name AS product_name , product_desc . preview AS product_preview , product_desc . description AS product_description , product_info . url , category_offer . reference AS product_offer_reference , project_profile_discount . value AS project_discount , JSON_AGG
( DISTINCT
JSONB_BUILD_OBJECT
(
'0' , CONCAT (product_offer . value , product_variation . value , product_modification . value , product_modification_price . price ),
'offer_uid' , product_offer . id ,
'offer_value' , product_offer . value ,
'offer_postfix' , product_offer . postfix ,
'offer_reference' , category_offer . reference ,
'offer_name' , category_offer_trans . name ,
'variation_uid' , product_variation . id ,
'variation_value' , product_variation . value ,
'variation_postfix' , product_variation . postfix ,
'variation_reference' , category_variation . reference ,
'variation_name' , category_variation_trans . name ,
'modification_uid' , product_modification . id ,
'modification_value' , product_modification . value ,
'modification_postfix' , product_modification . postfix ,
'modification_reference' , category_modification . reference ,
'modification_name' , category_modification_trans . name ,
'article' , CASE
WHEN product_modification . article IS NOT NULL THEN product_modification . article
WHEN product_variation . article IS NOT NULL THEN product_variation . article
WHEN product_offer . article IS NOT NULL THEN product_offer . article
WHEN product_info . article IS NOT NULL THEN product_info . article
ELSE NULL
END ,
'product_invariable_id' , COALESCE (
product_invariable . id
),
'profile_discount' , NULL ,
'project_discount' , project_profile_discount . value ,
'promotion_price' , NULL ,
'promotion_active' , NULL ,
'price' , CASE
WHEN product_modification_price . price IS NOT NULL AND product_modification_price . price > 0 THEN product_modification_price . price
WHEN product_variation_price . price IS NOT NULL AND product_variation_price . price > 0 THEN product_variation_price . price
WHEN product_offer_price . price IS NOT NULL AND product_offer_price . price > 0 THEN product_offer_price . price
WHEN product_price . price IS NOT NULL AND product_price . price > 0 THEN product_price . price
ELSE NULL
END ,
'old_price' , COALESCE (
NULLIF (product_modification_price . old , 0 ),
NULLIF (product_variation_price . old , 0 ),
NULLIF (product_offer_price . old , 0 ),
NULLIF (product_price . old , 0 ),
0
),
'currency' , CASE
WHEN product_modification_price . price IS NOT NULL AND product_modification_price . price > 0 THEN product_modification_price . currency
WHEN product_variation_price . price IS NOT NULL AND product_variation_price . price > 0 THEN product_variation_price . currency
WHEN product_offer_price . price IS NOT NULL AND product_offer_price . price > 0 THEN product_offer_price . currency
WHEN product_price . price IS NOT NULL AND product_price . price > 0 THEN product_price . currency
ELSE NULL
END ,
'quantity' , CASE
WHEN product_modification_quantity . quantity IS NOT NULL THEN (product_modification_quantity . quantity - product_modification_quantity . reserve )
WHEN product_variation_quantity . quantity IS NOT NULL THEN (product_variation_quantity . quantity - product_variation_quantity . reserve )
WHEN product_offer_quantity . quantity IS NOT NULL THEN (product_offer_quantity . quantity - product_offer_quantity . reserve )
WHEN product_price . quantity IS NOT NULL THEN (product_price . quantity - product_price . reserve )
ELSE NULL
END
)
)
FILTER (WHERE
CASE
WHEN product_modification_price . price IS NOT NULL AND product_modification_price . price > 0 THEN product_modification_price . price
WHEN product_variation_price . price IS NOT NULL AND product_variation_price . price > 0 THEN product_variation_price . price
WHEN product_offer_price . price IS NOT NULL AND product_offer_price . price > 0 THEN product_offer_price . price
WHEN product_price . price IS NOT NULL AND product_price . price > 0 THEN product_price . price
ELSE 0
END > 0 )
AS product_offers ,
JSON_AGG
(DISTINCT
CASE
WHEN product_modification_image . ext IS NOT NULL THEN
JSONB_BUILD_OBJECT
(
'product_img_root' , product_modification_image . root ,
'product_img' , CONCAT ( '/upload/product_modification_images' , '/' , product_modification_image . name ),
'product_img_ext' , product_modification_image . ext ,
'product_img_cdn' , product_modification_image . cdn
)
WHEN product_variation_image . ext IS NOT NULL THEN
JSONB_BUILD_OBJECT
(
'product_img_root' , product_variation_image . root ,
'product_img' , CONCAT ( '/upload/product_variation_images' , '/' , product_variation_image . name ),
'product_img_ext' , product_variation_image . ext ,
'product_img_cdn' , product_variation_image . cdn
)
WHEN product_offer_images . ext IS NOT NULL THEN
JSONB_BUILD_OBJECT
(
'product_img_root' , product_offer_images . root ,
'product_img' , CONCAT ( '/upload/product_offer_images' , '/' , product_offer_images . name ),
'product_img_ext' , product_offer_images . ext ,
'product_img_cdn' , product_offer_images . cdn
)
WHEN product_photo . ext IS NOT NULL THEN
JSONB_BUILD_OBJECT
(
'product_img_root' , product_photo . root ,
'product_img' , CONCAT ( '/upload/product_photo' , '/' , product_photo . name ),
'product_img_ext' , product_photo . ext ,
'product_img_cdn' , product_photo . cdn
)
ELSE NULL
END )
AS product_images , category . id as category_id , category_trans . name AS category_name , category_info . url AS category_url , category_info . threshold AS category_threshold , category_cover . ext AS category_cover_ext , category_cover . cdn AS category_cover_cdn ,
CASE
WHEN category_cover . name IS NOT NULL
THEN CONCAT ( '/upload/product_category_cover' , '/' , category_cover . name )
ELSE NULL
END AS category_cover_dir , JSON_AGG
( DISTINCT
JSONB_BUILD_OBJECT
(
'0' , category_section_field . sort ,
'field_name' , category_section_field . name ,
'field_public' , category_section_field . public ,
'field_card' , category_section_field . card ,
'field_type' , category_section_field . type ,
'field_trans' , category_section_field_trans . name ,
'field_value' , product_property . value
)
)
AS category_section_field FROM product INNER JOIN product_active product_active ON product_active . event = product . event LEFT JOIN product_profile product_profile ON product_profile . event = product . event LEFT JOIN product_seo product_seo ON product_seo . event = product . event AND product_seo . local = 'ru' LEFT JOIN product_trans product_trans ON product_trans . event = product . event AND product_trans . local = 'ru' LEFT JOIN product_description product_desc ON product_desc . event = product . event AND product_desc . device = 'pc' LEFT JOIN product_price product_price ON product_price . event = product . event LEFT JOIN product_info product_info ON product_info . product = product . id LEFT JOIN product_offer product_offer ON product_offer . event = product . event INNER JOIN users_profile project_profile ON
project_profile . id = '01982ecf-0a6a-79e5-967b-4992d1b836bb' INNER JOIN product_categories_product product_event_category ON product_event_category . event = product . event AND product_event_category . root = true LEFT JOIN product_category_offers category_offer ON category_offer . id = product_offer . category_offer LEFT JOIN product_offer_price product_offer_price ON product_offer_price . offer = (SELECT tmp_product_offer_price . offer FROM product_offer_price tmp_product_offer_price WHERE tmp_product_offer_price . offer = product_offer . id ORDER BY tmp_product_offer_price . offer DESC LIMIT 1 ) LEFT JOIN product_offer_quantity product_offer_quantity ON product_offer_quantity . offer = product_offer . id LEFT JOIN product_variation product_variation ON product_variation . offer = product_offer . id LEFT JOIN product_photo product_photo ON product_photo . event = product . event LEFT JOIN product_offer_images product_offer_images ON product_offer_images . offer = product_offer . id LEFT JOIN product_variation_images product_variation_image ON product_variation_image . variation = product_variation . id LEFT JOIN product_category_offers_trans category_offer_trans ON category_offer_trans . offer = category_offer . id AND category_offer_trans . local = 'ru' LEFT JOIN product_category_variation category_variation ON category_variation . id = product_variation . category_variation LEFT JOIN product_variation_price product_variation_price ON product_variation_price . variation = (SELECT tmp_product_variation_price . variation FROM product_variation_price tmp_product_variation_price WHERE tmp_product_variation_price . variation = product_variation . id ORDER BY tmp_product_variation_price . variation DESC LIMIT 1 ) LEFT JOIN product_modification product_modification ON product_modification . variation = product_variation . id LEFT JOIN product_category_variation_trans category_variation_trans ON category_variation_trans . variation = category_variation . id AND category_variation_trans . local = 'ru' LEFT JOIN product_variation_quantity product_variation_quantity ON product_variation_quantity . variation = product_variation . id LEFT JOIN product_category_modification category_modification ON category_modification . id = product_modification . category_modification LEFT JOIN product_modification_price product_modification_price ON product_modification_price . modification = (SELECT tmp_product_modification_price . modification FROM product_modification_price tmp_product_modification_price WHERE tmp_product_modification_price . modification = product_modification . id ORDER BY tmp_product_modification_price . modification DESC LIMIT 1 ) LEFT JOIN product_invariable product_invariable ON
product_invariable . product = product . id AND
(
(product_offer . const IS NOT NULL AND product_invariable . offer = product_offer . const ) OR
(product_offer . const IS NULL AND product_invariable . offer IS NULL )
)
AND
(
(product_variation . const IS NOT NULL AND product_invariable . variation = product_variation . const ) OR
(product_variation . const IS NULL AND product_invariable . variation IS NULL )
)
AND
(
(product_modification . const IS NOT NULL AND product_invariable . modification = product_modification . const ) OR
(product_modification . const IS NULL AND product_invariable . modification IS NULL )
)
LEFT JOIN product_modification_images product_modification_image ON product_modification_image . modification = product_modification . id LEFT JOIN product_category_modification_trans category_modification_trans ON category_modification_trans . modification = category_modification . id AND category_modification_trans . local = 'ru' LEFT JOIN product_modification_quantity product_modification_quantity ON product_modification_quantity . modification = product_modification . id LEFT JOIN user_profile_discount project_profile_discount ON
project_profile_discount . event = project_profile . event INNER JOIN product_category category ON category . id = product_event_category . category LEFT JOIN product_category_trans category_trans ON category_trans . event = category . event AND category_trans . local = 'ru' LEFT JOIN product_category_info category_info ON category_info . event = category . event LEFT JOIN product_category_section category_section ON category_section . event = category . event LEFT JOIN product_category_cover category_cover ON category_cover . event = category . event LEFT JOIN product_category_section_field category_section_field ON category_section_field . section = category_section . id LEFT JOIN product_category_section_field_trans category_section_field_trans ON category_section_field_trans . field = category_section_field . id AND category_section_field_trans . local = 'ru' LEFT JOIN product_property product_property ON product_property . event = product . event AND product_property . field = category_section_field . const WHERE product . id = '0191c806-5685-7317-af20-94d13dc4e9dc' GROUP BY category . id , product . id , product . event , product_active . active , product_active . active_from , product_active . active_to , product_seo . title , product_seo . keywords , product_seo . description , product_trans . name , product_desc . preview , product_desc . description , product_info . url , category_offer . reference , project_profile_discount . value , category . id , category_trans . name , category_info . url , category_info . threshold , category_cover . ext , category_cover . cdn , category_cover . name ;
Copy
9
0.31 ms
"START TRANSACTION"
"START TRANSACTION" ;
Copy
10
1.41 ms
INSERT INTO messenger_core (body , headers , queue_name , created_at , available_at ) VALUES (? , ? , ? , ? , ? ) RETURNING id
Parameters :
[
"O:36:\"Symfony\\Component\\Messenger\\Envelope\":2:{s:44:\"\0Symfony\\Component\\Messenger\\Envelope\0stamps\";a:2:{s:53:\"Symfony\\Component\\Messenger\\Stamp\\TransportNamesStamp\";a:1:{i:0;O:53:\"Symfony\\Component\\Messenger\\Stamp\\TransportNamesStamp\":1:{s:69:\"\0Symfony\\Component\\Messenger\\Stamp\\TransportNamesStamp\0transportNames\";a:1:{i:0;s:9:\"async-low\";}}}s:46:\"Symfony\\Component\\Messenger\\Stamp\\BusNameStamp\";a:1:{i:0;O:46:\"Symfony\\Component\\Messenger\\Stamp\\BusNameStamp\":1:{s:55:\"\0Symfony\\Component\\Messenger\\Stamp\\BusNameStamp\0busName\";s:21:\"messenger.bus.default\";}}}s:45:\"\0Symfony\\Component\\Messenger\\Envelope\0message\";O:54:\"BaksDev\\Core\\Doctrine\\DBAL\\Cache\\DBALCacheResetMessage\":2:{s:65:\"\0BaksDev\\Core\\Doctrine\\DBAL\\Cache\\DBALCacheResetMessage\0namespace\";s:16:\"products-product\";s:59:\"\0BaksDev\\Core\\Doctrine\\DBAL\\Cache\\DBALCacheResetMessage\0key\";s:40:\"4b9c3bf62d1044504a9347c1fb8e8baf3cbf0f07\";}} "
"[] "
"low "
"2026-02-21 14:25:12 "
"2026-02-21 14:25:12 "
]
INSERT INTO messenger_core (body , headers , queue_name , created_at , available_at ) VALUES ('O:36:\\\"Symfony\\\\Component\\\\Messenger\\\\Envelope\\\":2:{s:44:\\\"\\0Symfony\\\\Component\\\\Messenger\\\\Envelope\\0stamps\\\";a:2:{s:53:\\\"Symfony\\\\Component\\\\Messenger\\\\Stamp\\\\TransportNamesStamp\\\";a:1:{i:0;O:53:\\\"Symfony\\\\Component\\\\Messenger\\\\Stamp\\\\TransportNamesStamp\\\":1:{s:69:\\\"\\0Symfony\\\\Component\\\\Messenger\\\\Stamp\\\\TransportNamesStamp\\0transportNames\\\";a:1:{i:0;s:9:\\\"async-low\\\";}}}s:46:\\\"Symfony\\\\Component\\\\Messenger\\\\Stamp\\\\BusNameStamp\\\";a:1:{i:0;O:46:\\\"Symfony\\\\Component\\\\Messenger\\\\Stamp\\\\BusNameStamp\\\":1:{s:55:\\\"\\0Symfony\\\\Component\\\\Messenger\\\\Stamp\\\\BusNameStamp\\0busName\\\";s:21:\\\"messenger.bus.default\\\";}}}s:45:\\\"\\0Symfony\\\\Component\\\\Messenger\\\\Envelope\\0message\\\";O:54:\\\"BaksDev\\\\Core\\\\Doctrine\\\\DBAL\\\\Cache\\\\DBALCacheResetMessage\\\":2:{s:65:\\\"\\0BaksDev\\\\Core\\\\Doctrine\\\\DBAL\\\\Cache\\\\DBALCacheResetMessage\\0namespace\\\";s:16:\\\"products-product\\\";s:59:\\\"\\0BaksDev\\\\Core\\\\Doctrine\\\\DBAL\\\\Cache\\\\DBALCacheResetMessage\\0key\\\";s:40:\\\"4b9c3bf62d1044504a9347c1fb8e8baf3cbf0f07\\\";}}' , '[]' , 'low' , '2026-02-21 14:25:12' , '2026-02-21 14:25:12' ) RETURNING id ;
Copy
11
0.30 ms
SELECT pg_notify (? , ? )
Parameters :
[
"messenger_core "
"low "
]
SELECT pg_notify ('messenger_core' , 'low' );
Copy
12
5.57 ms
"COMMIT"
13
104.76 ms
SELECT review . event AS review_event , review_modify . mod_date as update , review_product . value AS review_product , product_trans . name AS product_name , review_status . value AS review_status , review_text . value AS review_text , review_user . value AS review_user , review_rating . value AS review_rating_value , profile_personal . username as profile_username , review_name . value AS review_name FROM product_review review INNER JOIN product_review_event review_event ON review . event = review_event . id INNER JOIN product_review_modify review_modify ON review_modify . event = review_event . id INNER JOIN product_review_product review_product ON review_product . event = review_event . id INNER JOIN product_review_status review_status ON review_status . event = review_event . id INNER JOIN product_review_text review_text ON review_text . event = review_event . id INNER JOIN product_review_user review_user ON review_user . event = review_event . id LEFT JOIN product_review_rating review_rating ON review_rating . event = review_event . id LEFT JOIN product_review_name review_name ON review_name . event = review_event . id INNER JOIN product product ON product . id = review_product . value AND product . id = ? INNER JOIN product_event product_event ON product_event . id = product . event INNER JOIN product_trans product_trans ON product_trans . event = product_event . id INNER JOIN users_profile_info profile_info ON profile_info . usr = review_user . value AND profile_info . active = true LEFT JOIN users_profile profile ON profile . id = profile_info . profile LEFT JOIN users_profile_personal profile_personal ON profile_personal . event = profile . event WHERE review_status . value = ? GROUP BY review . event , review_modify . mod_date , review_product . value , product_trans . name , review_status . value , review_text . value , review_user . value , review_rating . value , profile_personal . username , review_name . value , review . id ORDER BY review . id DESC LIMIT 24
Parameters :
[
"0191c806-5685-7317-af20-94d13dc4e9dc "
"active "
]
SELECT review . event AS review_event , review_modify . mod_date as update , review_product . value AS review_product , product_trans . name AS product_name , review_status . value AS review_status , review_text . value AS review_text , review_user . value AS review_user , review_rating . value AS review_rating_value , profile_personal . username as profile_username , review_name . value AS review_name FROM product_review review INNER JOIN product_review_event review_event ON review . event = review_event . id INNER JOIN product_review_modify review_modify ON review_modify . event = review_event . id INNER JOIN product_review_product review_product ON review_product . event = review_event . id INNER JOIN product_review_status review_status ON review_status . event = review_event . id INNER JOIN product_review_text review_text ON review_text . event = review_event . id INNER JOIN product_review_user review_user ON review_user . event = review_event . id LEFT JOIN product_review_rating review_rating ON review_rating . event = review_event . id LEFT JOIN product_review_name review_name ON review_name . event = review_event . id INNER JOIN product product ON product . id = review_product . value AND product . id = '0191c806-5685-7317-af20-94d13dc4e9dc' INNER JOIN product_event product_event ON product_event . id = product . event INNER JOIN product_trans product_trans ON product_trans . event = product_event . id INNER JOIN users_profile_info profile_info ON profile_info . usr = review_user . value AND profile_info . active = true LEFT JOIN users_profile profile ON profile . id = profile_info . profile LEFT JOIN users_profile_personal profile_personal ON profile_personal . event = profile . event WHERE review_status . value = 'active' GROUP BY review . event , review_modify . mod_date , review_product . value , product_trans . name , review_status . value , review_text . value , review_user . value , review_rating . value , profile_personal . username , review_name . value , review . id ORDER BY review . id DESC LIMIT 24 ;
Copy
14
145.22 ms
SELECT product . id AS product_id , product . event AS product_event , product_trans . name AS product_name , product_info . url AS product_url , product_info . sort AS product_sort , product_active . active as product_active , product_active . active_from as product_active_from , product_active . active_to as product_active_to , category_offer . card AS category_offer_card , category_offer . reference AS product_offer_reference , category_variation . card AS category_variation_card , category_variation . reference as product_variation_reference , category_modification . card AS category_modification_card , category_modification . reference as product_modification_reference , JSON_AGG ( DISTINCT product_invariable . id ) AS invariable ,
CASE
WHEN product_modification_image . name IS NOT NULL THEN
CONCAT ( '/upload/product_modification_images' , '/' , product_modification_image . name )
WHEN product_variation_image . name IS NOT NULL THEN
CONCAT ( '/upload/product_variation_images' , '/' , product_variation_image . name )
WHEN product_offer_images . name IS NOT NULL THEN
CONCAT ( '/upload/product_offer_images' , '/' , product_offer_images . name )
WHEN product_photo . name IS NOT NULL THEN
CONCAT ( '/upload/product_photo' , '/' , product_photo . name )
ELSE NULL
END AS product_image
,
COALESCE (
product_modification_image . ext ,
product_variation_image . ext ,
product_offer_images . ext ,
product_photo . ext
) AS product_image_ext ,
COALESCE (
product_modification_image . cdn ,
product_variation_image . cdn ,
product_offer_images . cdn ,
product_photo . cdn
) AS product_image_cdn , category_info . url AS category_url , category_trans . name AS category_name ,
COALESCE (
NULLIF (MIN (product_modification_price . price ), 0 ),
NULLIF (MIN (product_variation_price . price ), 0 ),
NULLIF (MIN (product_offer_price . price ), 0 ),
NULLIF (MIN (product_price . price ), 0 ),
0
) AS product_price
,
CASE
WHEN MIN (product_modification_price . price ) IS NOT NULL
THEN product_modification_price . currency
WHEN MIN (product_variation_price . price ) IS NOT NULL
THEN product_variation_price . currency
WHEN MIN (product_offer_price . price ) IS NOT NULL
THEN product_offer_price . currency
WHEN MIN (product_price . price ) IS NOT NULL
THEN product_price . currency
ELSE NULL
END AS product_currency
, project_profile_discount . value AS project_discount FROM product INNER JOIN product_categories_product product_event_category ON product_event_category . event = product . event AND product_event_category . category IN (? ) LEFT JOIN product_trans product_trans ON product_trans . event = product . event AND product_trans . local = ? LEFT JOIN product_info product_info ON product_info . product = product . id LEFT JOIN product_active product_active ON product_active . event = product . event LEFT JOIN product_price product_price ON product_price . event = product . event AND product_price . price > 0 LEFT JOIN product_offer product_offer ON product_offer . event = product . event INNER JOIN users_profile project_profile ON
project_profile . id = ? LEFT JOIN product_category category ON category . id = product_event_category . category LEFT JOIN product_category_info category_info ON category_info . event = category . event AND category_info . active IS TRUE LEFT JOIN product_category_trans category_trans ON category_trans . event = category . event AND category_trans . local = ? LEFT JOIN product_category_offers category_offer ON category_offer . id = product_offer . category_offer LEFT JOIN product_offer_price product_offer_price ON product_offer_price . offer = product_offer . id AND product_offer_price . price > 0 LEFT JOIN product_offer_quantity product_offer_quantity ON product_offer_quantity . offer = product_offer . id LEFT JOIN product_variation product_variation ON product_variation . offer = product_offer . id LEFT JOIN product_variation_images product_variation_image ON
product_variation_image . variation = product_variation . id AND
product_variation_image . root = true
LEFT JOIN product_offer_images product_offer_images ON
product_variation_image . name IS NULL AND
product_offer_images . offer = product_offer . id AND
product_offer_images . root = true
LEFT JOIN product_photo product_photo ON
product_offer_images . name IS NULL AND
product_photo . event = product . event AND
product_photo . root = true
LEFT JOIN product_category_variation category_variation ON category_variation . id = product_variation . category_variation LEFT JOIN product_modification product_modification ON product_modification . variation = product_variation . id LEFT JOIN product_invariable product_invariable ON
product_invariable . product = product . id
AND
CASE
WHEN product_offer . const IS NOT NULL THEN product_invariable . offer = product_offer . const
ELSE product_invariable . offer IS NULL
END
AND
CASE
WHEN product_variation . const IS NOT NULL THEN product_invariable . variation = product_variation . const
ELSE product_invariable . variation IS NULL
END
AND
CASE
WHEN product_modification . const IS NOT NULL THEN product_invariable . modification = product_modification . const
ELSE product_invariable . modification IS NULL
END
LEFT JOIN product_variation_price product_variation_price ON product_variation_price . variation = product_variation . id AND product_variation_price . price > 0 LEFT JOIN product_variation_quantity product_variation_quantity ON product_variation_quantity . variation = product_variation . id LEFT JOIN product_category_modification category_modification ON category_modification . id = product_modification . category_modification LEFT JOIN product_modification_price product_modification_price ON product_modification_price . modification = product_modification . id AND product_modification_price . price > 0 LEFT JOIN product_modification_quantity product_modification_quantity ON product_modification_quantity . modification = product_modification . id LEFT JOIN product_modification_images product_modification_image ON
product_modification_image . modification = product_modification . id AND
product_modification_image . root = true
LEFT JOIN user_profile_discount project_profile_discount ON
project_profile_discount . event = project_profile . event WHERE (COALESCE (
NULLIF (product_modification_price . price , 0 ),
NULLIF (product_variation_price . price , 0 ),
NULLIF (product_offer_price . price , 0 ),
NULLIF (product_price . price , 0 ),
0
) > 0 ) AND (
CASE
WHEN product_modification_quantity . quantity IS NOT NULL THEN (product_modification_quantity . quantity - product_modification_quantity . reserve )
WHEN product_variation_quantity . quantity IS NOT NULL THEN (product_variation_quantity . quantity - product_variation_quantity . reserve )
WHEN product_offer_quantity . quantity IS NOT NULL THEN (product_offer_quantity . quantity - product_offer_quantity . reserve )
WHEN product_price . quantity IS NOT NULL THEN (product_price . quantity - product_price . reserve )
ELSE 0
END > 0
) GROUP BY product_price . currency , product_offer_price . currency , product_variation_price . currency , product_modification_price . currency , product . id , product . event , product_trans . name , product_info . url , product_info . sort , product_active . active , product_active . active_from , product_active . active_to , category_offer . card , category_offer . reference , category_variation . card , category_variation . reference , category_modification . card , category_modification . reference , product_modification_image . name , product_variation_image . name , product_offer_images . name , product_photo . name , product_modification_image . ext , product_variation_image . ext , product_offer_images . ext , product_photo . ext , product_modification_image . cdn , product_variation_image . cdn , product_offer_images . cdn , product_photo . cdn , category_info . url , category_trans . name , project_profile_discount . value ORDER BY product_info . sort DESC , SUM (product_modification_quantity . reserve ) DESC , SUM (product_variation_quantity . reserve ) DESC , SUM (product_offer_quantity . reserve ) DESC , SUM (product_price . reserve ) DESC , SUM (product_modification_quantity . quantity ) DESC , SUM (product_variation_quantity . quantity ) DESC , SUM (product_offer_quantity . quantity ) DESC , SUM (product_price . quantity ) DESC LIMIT 6
SELECT
product . id AS product_id ,
product . event AS product_event ,
product_trans . name AS product_name ,
product_info . url AS product_url ,
product_info . sort AS product_sort ,
product_active . active as product_active ,
product_active . active_from as product_active_from ,
product_active . active_to as product_active_to ,
category_offer . card AS category_offer_card ,
category_offer . reference AS product_offer_reference ,
category_variation . card AS category_variation_card ,
category_variation . reference as product_variation_reference ,
category_modification . card AS category_modification_card ,
category_modification . reference as product_modification_reference ,
JSON_AGG (DISTINCT product_invariable . id ) AS invariable ,
CASE WHEN product_modification_image . name IS NOT NULL THEN
CONCAT (
'/upload/product_modification_images' ,
'/' , product_modification_image . name
)
WHEN product_variation_image . name IS NOT NULL THEN
CONCAT (
'/upload/product_variation_images' ,
'/' , product_variation_image . name
)
WHEN product_offer_images . name IS NOT NULL THEN
CONCAT (
'/upload/product_offer_images' ,
'/' , product_offer_images . name
)
WHEN product_photo . name IS NOT NULL THEN
CONCAT (
'/upload/product_photo' , '/' , product_photo . name
)
ELSE
NULL
END AS product_image ,
COALESCE (
product_modification_image . ext ,
product_variation_image . ext , product_offer_images . ext ,
product_photo . ext
) AS product_image_ext ,
COALESCE (
product_modification_image . cdn ,
product_variation_image . cdn , product_offer_images . cdn ,
product_photo . cdn
) AS product_image_cdn ,
category_info . url AS category_url ,
category_trans . name AS category_name ,
COALESCE (
NULLIF (
MIN (
product_modification_price . price
),
0
),
NULLIF (
MIN (product_variation_price . price ),
0
),
NULLIF (
MIN (product_offer_price . price ),
0
),
NULLIF (
MIN (product_price . price ),
0
),
0
) AS product_price ,
CASE WHEN MIN (
product_modification_price . price
) IS NOT NULL THEN
product_modification_price . currency
WHEN MIN (product_variation_price . price ) IS NOT NULL THEN
product_variation_price . currency
WHEN MIN (product_offer_price . price ) IS NOT NULL THEN
product_offer_price . currency
WHEN MIN (product_price . price ) IS NOT NULL THEN
product_price . currency
ELSE
NULL
END AS product_currency ,
project_profile_discount . value AS project_discount
FROM
product
INNER JOIN product_categories_product product_event_category ON product_event_category . event = product . event
AND product_event_category . category IN (? )
LEFT JOIN product_trans product_trans ON product_trans . event = product . event
AND product_trans . local = ?
LEFT JOIN product_info product_info ON product_info . product = product . id
LEFT JOIN product_active product_active ON product_active . event = product . event
LEFT JOIN product_price product_price ON product_price . event = product . event
AND product_price . price > 0
LEFT JOIN product_offer product_offer ON product_offer . event = product . event
INNER JOIN users_profile project_profile ON project_profile . id = ?
LEFT JOIN product_category category ON category . id = product_event_category . category
LEFT JOIN product_category_info category_info ON category_info . event = category . event
AND category_info . active IS TRUE
LEFT JOIN product_category_trans category_trans ON category_trans . event = category . event
AND category_trans . local = ?
LEFT JOIN product_category_offers category_offer ON category_offer . id = product_offer . category_offer
LEFT JOIN product_offer_price product_offer_price ON product_offer_price . offer = product_offer . id
AND product_offer_price . price > 0
LEFT JOIN product_offer_quantity product_offer_quantity ON product_offer_quantity . offer = product_offer . id
LEFT JOIN product_variation product_variation ON product_variation . offer = product_offer . id
LEFT JOIN product_variation_images product_variation_image ON product_variation_image . variation = product_variation . id
AND product_variation_image . root = true
LEFT JOIN product_offer_images product_offer_images ON product_variation_image . name IS NULL
AND product_offer_images . offer = product_offer . id
AND product_offer_images . root = true
LEFT JOIN product_photo product_photo ON product_offer_images . name IS NULL
AND product_photo . event = product . event
AND product_photo . root = true
LEFT JOIN product_category_variation category_variation ON category_variation . id = product_variation . category_variation
LEFT JOIN product_modification product_modification ON product_modification . variation = product_variation . id
LEFT JOIN product_invariable product_invariable ON product_invariable . product = product . id
AND CASE WHEN product_offer . const IS NOT NULL THEN
product_invariable . offer = product_offer . const
ELSE
product_invariable . offer IS NULL
END
AND CASE WHEN product_variation . const IS NOT NULL THEN
product_invariable . variation = product_variation . const
ELSE
product_invariable . variation IS NULL
END
AND CASE WHEN product_modification . const IS NOT NULL THEN
product_invariable . modification = product_modification . const
ELSE
product_invariable . modification IS NULL
END
LEFT JOIN product_variation_price product_variation_price ON product_variation_price . variation = product_variation . id
AND product_variation_price . price > 0
LEFT JOIN product_variation_quantity product_variation_quantity ON product_variation_quantity . variation = product_variation . id
LEFT JOIN product_category_modification category_modification ON category_modification . id = product_modification . category_modification
LEFT JOIN product_modification_price product_modification_price ON product_modification_price . modification = product_modification . id
AND product_modification_price . price > 0
LEFT JOIN product_modification_quantity product_modification_quantity ON product_modification_quantity . modification = product_modification . id
LEFT JOIN product_modification_images product_modification_image ON product_modification_image . modification = product_modification . id
AND product_modification_image . root = true
LEFT JOIN user_profile_discount project_profile_discount ON project_profile_discount . event = project_profile . event
WHERE
(
COALESCE (
NULLIF (
product_modification_price . price ,
0
),
NULLIF (
product_variation_price . price , 0
),
NULLIF (product_offer_price . price , 0 ),
NULLIF (product_price . price , 0 ),
0
) > 0
)
AND (
CASE WHEN product_modification_quantity . quantity IS NOT NULL THEN
(
product_modification_quantity . quantity - product_modification_quantity . reserve
)
WHEN product_variation_quantity . quantity IS NOT NULL THEN
(
product_variation_quantity . quantity - product_variation_quantity . reserve
)
WHEN product_offer_quantity . quantity IS NOT NULL THEN
(
product_offer_quantity . quantity - product_offer_quantity . reserve
)
WHEN product_price . quantity IS NOT NULL THEN
(
product_price . quantity - product_price . reserve
)
ELSE
0
END > 0
)
GROUP BY
product_price . currency ,
product_offer_price . currency ,
product_variation_price . currency ,
product_modification_price . currency ,
product . id ,
product . event ,
product_trans . name ,
product_info . url ,
product_info . sort ,
product_active . active ,
product_active . active_from ,
product_active . active_to ,
category_offer . card ,
category_offer . reference ,
category_variation . card ,
category_variation . reference ,
category_modification . card ,
category_modification . reference ,
product_modification_image . name ,
product_variation_image . name ,
product_offer_images . name ,
product_photo . name ,
product_modification_image . ext ,
product_variation_image . ext ,
product_offer_images . ext ,
product_photo . ext ,
product_modification_image . cdn ,
product_variation_image . cdn ,
product_offer_images . cdn ,
product_photo . cdn ,
category_info . url ,
category_trans . name ,
project_profile_discount . value
ORDER BY
product_info . sort DESC ,
SUM (
product_modification_quantity . reserve
) DESC ,
SUM (
product_variation_quantity . reserve
) DESC ,
SUM (product_offer_quantity . reserve ) DESC ,
SUM (product_price . reserve ) DESC ,
SUM (
product_modification_quantity . quantity
) DESC ,
SUM (
product_variation_quantity . quantity
) DESC ,
SUM (
product_offer_quantity . quantity
) DESC ,
SUM (product_price . quantity ) DESC
LIMIT
6
Copy
SELECT product . id AS product_id , product . event AS product_event , product_trans . name AS product_name , product_info . url AS product_url , product_info . sort AS product_sort , product_active . active as product_active , product_active . active_from as product_active_from , product_active . active_to as product_active_to , category_offer . card AS category_offer_card , category_offer . reference AS product_offer_reference , category_variation . card AS category_variation_card , category_variation . reference as product_variation_reference , category_modification . card AS category_modification_card , category_modification . reference as product_modification_reference , JSON_AGG ( DISTINCT product_invariable . id ) AS invariable ,
CASE
WHEN product_modification_image . name IS NOT NULL THEN
CONCAT ( '/upload/product_modification_images' , '/' , product_modification_image . name )
WHEN product_variation_image . name IS NOT NULL THEN
CONCAT ( '/upload/product_variation_images' , '/' , product_variation_image . name )
WHEN product_offer_images . name IS NOT NULL THEN
CONCAT ( '/upload/product_offer_images' , '/' , product_offer_images . name )
WHEN product_photo . name IS NOT NULL THEN
CONCAT ( '/upload/product_photo' , '/' , product_photo . name )
ELSE NULL
END AS product_image
,
COALESCE (
product_modification_image . ext ,
product_variation_image . ext ,
product_offer_images . ext ,
product_photo . ext
) AS product_image_ext ,
COALESCE (
product_modification_image . cdn ,
product_variation_image . cdn ,
product_offer_images . cdn ,
product_photo . cdn
) AS product_image_cdn , category_info . url AS category_url , category_trans . name AS category_name ,
COALESCE (
NULLIF (MIN (product_modification_price . price ), 0 ),
NULLIF (MIN (product_variation_price . price ), 0 ),
NULLIF (MIN (product_offer_price . price ), 0 ),
NULLIF (MIN (product_price . price ), 0 ),
0
) AS product_price
,
CASE
WHEN MIN (product_modification_price . price ) IS NOT NULL
THEN product_modification_price . currency
WHEN MIN (product_variation_price . price ) IS NOT NULL
THEN product_variation_price . currency
WHEN MIN (product_offer_price . price ) IS NOT NULL
THEN product_offer_price . currency
WHEN MIN (product_price . price ) IS NOT NULL
THEN product_price . currency
ELSE NULL
END AS product_currency
, project_profile_discount . value AS project_discount FROM product INNER JOIN product_categories_product product_event_category ON product_event_category . event = product . event AND product_event_category . category IN ('01876af0-ddfc-70c3-ab25-5f85f55a9907' ) LEFT JOIN product_trans product_trans ON product_trans . event = product . event AND product_trans . local = 'ru' LEFT JOIN product_info product_info ON product_info . product = product . id LEFT JOIN product_active product_active ON product_active . event = product . event LEFT JOIN product_price product_price ON product_price . event = product . event AND product_price . price > 0 LEFT JOIN product_offer product_offer ON product_offer . event = product . event INNER JOIN users_profile project_profile ON
project_profile . id = '01982ecf-0a6a-79e5-967b-4992d1b836bb' LEFT JOIN product_category category ON category . id = product_event_category . category LEFT JOIN product_category_info category_info ON category_info . event = category . event AND category_info . active IS TRUE LEFT JOIN product_category_trans category_trans ON category_trans . event = category . event AND category_trans . local = 'ru' LEFT JOIN product_category_offers category_offer ON category_offer . id = product_offer . category_offer LEFT JOIN product_offer_price product_offer_price ON product_offer_price . offer = product_offer . id AND product_offer_price . price > 0 LEFT JOIN product_offer_quantity product_offer_quantity ON product_offer_quantity . offer = product_offer . id LEFT JOIN product_variation product_variation ON product_variation . offer = product_offer . id LEFT JOIN product_variation_images product_variation_image ON
product_variation_image . variation = product_variation . id AND
product_variation_image . root = true
LEFT JOIN product_offer_images product_offer_images ON
product_variation_image . name IS NULL AND
product_offer_images . offer = product_offer . id AND
product_offer_images . root = true
LEFT JOIN product_photo product_photo ON
product_offer_images . name IS NULL AND
product_photo . event = product . event AND
product_photo . root = true
LEFT JOIN product_category_variation category_variation ON category_variation . id = product_variation . category_variation LEFT JOIN product_modification product_modification ON product_modification . variation = product_variation . id LEFT JOIN product_invariable product_invariable ON
product_invariable . product = product . id
AND
CASE
WHEN product_offer . const IS NOT NULL THEN product_invariable . offer = product_offer . const
ELSE product_invariable . offer IS NULL
END
AND
CASE
WHEN product_variation . const IS NOT NULL THEN product_invariable . variation = product_variation . const
ELSE product_invariable . variation IS NULL
END
AND
CASE
WHEN product_modification . const IS NOT NULL THEN product_invariable . modification = product_modification . const
ELSE product_invariable . modification IS NULL
END
LEFT JOIN product_variation_price product_variation_price ON product_variation_price . variation = product_variation . id AND product_variation_price . price > 0 LEFT JOIN product_variation_quantity product_variation_quantity ON product_variation_quantity . variation = product_variation . id LEFT JOIN product_category_modification category_modification ON category_modification . id = product_modification . category_modification LEFT JOIN product_modification_price product_modification_price ON product_modification_price . modification = product_modification . id AND product_modification_price . price > 0 LEFT JOIN product_modification_quantity product_modification_quantity ON product_modification_quantity . modification = product_modification . id LEFT JOIN product_modification_images product_modification_image ON
product_modification_image . modification = product_modification . id AND
product_modification_image . root = true
LEFT JOIN user_profile_discount project_profile_discount ON
project_profile_discount . event = project_profile . event WHERE (COALESCE (
NULLIF (product_modification_price . price , 0 ),
NULLIF (product_variation_price . price , 0 ),
NULLIF (product_offer_price . price , 0 ),
NULLIF (product_price . price , 0 ),
0
) > 0 ) AND (
CASE
WHEN product_modification_quantity . quantity IS NOT NULL THEN (product_modification_quantity . quantity - product_modification_quantity . reserve )
WHEN product_variation_quantity . quantity IS NOT NULL THEN (product_variation_quantity . quantity - product_variation_quantity . reserve )
WHEN product_offer_quantity . quantity IS NOT NULL THEN (product_offer_quantity . quantity - product_offer_quantity . reserve )
WHEN product_price . quantity IS NOT NULL THEN (product_price . quantity - product_price . reserve )
ELSE 0
END > 0
) GROUP BY product_price . currency , product_offer_price . currency , product_variation_price . currency , product_modification_price . currency , product . id , product . event , product_trans . name , product_info . url , product_info . sort , product_active . active , product_active . active_from , product_active . active_to , category_offer . card , category_offer . reference , category_variation . card , category_variation . reference , category_modification . card , category_modification . reference , product_modification_image . name , product_variation_image . name , product_offer_images . name , product_photo . name , product_modification_image . ext , product_variation_image . ext , product_offer_images . ext , product_photo . ext , product_modification_image . cdn , product_variation_image . cdn , product_offer_images . cdn , product_photo . cdn , category_info . url , category_trans . name , project_profile_discount . value ORDER BY product_info . sort DESC , SUM (product_modification_quantity . reserve ) DESC , SUM (product_variation_quantity . reserve ) DESC , SUM (product_offer_quantity . reserve ) DESC , SUM (product_price . reserve ) DESC , SUM (product_modification_quantity . quantity ) DESC , SUM (product_variation_quantity . quantity ) DESC , SUM (product_offer_quantity . quantity ) DESC , SUM (product_price . quantity ) DESC LIMIT 6 ;
Copy
15
98.86 ms
SELECT product . id AS product_id , product . event AS product_event , product_trans . name AS product_name , product_info . url AS product_url , product_info . sort AS product_sort , product_active . active as product_active , product_active . active_from as product_active_from , product_active . active_to as product_active_to , category_offer . card AS category_offer_card , category_offer . reference AS product_offer_reference , category_variation . card AS category_variation_card , category_variation . reference as product_variation_reference , category_modification . card AS category_modification_card , category_modification . reference as product_modification_reference , JSON_AGG ( DISTINCT product_invariable . id ) AS invariable ,
CASE
WHEN product_modification_image . name IS NOT NULL THEN
CONCAT ( '/upload/product_modification_images' , '/' , product_modification_image . name )
WHEN product_variation_image . name IS NOT NULL THEN
CONCAT ( '/upload/product_variation_images' , '/' , product_variation_image . name )
WHEN product_offer_images . name IS NOT NULL THEN
CONCAT ( '/upload/product_offer_images' , '/' , product_offer_images . name )
WHEN product_photo . name IS NOT NULL THEN
CONCAT ( '/upload/product_photo' , '/' , product_photo . name )
ELSE NULL
END AS product_image
,
COALESCE (
product_modification_image . ext ,
product_variation_image . ext ,
product_offer_images . ext ,
product_photo . ext
) AS product_image_ext ,
COALESCE (
product_modification_image . cdn ,
product_variation_image . cdn ,
product_offer_images . cdn ,
product_photo . cdn
) AS product_image_cdn , category_info . url AS category_url , category_trans . name AS category_name ,
COALESCE (
NULLIF (MIN (product_modification_price . price ), 0 ),
NULLIF (MIN (product_variation_price . price ), 0 ),
NULLIF (MIN (product_offer_price . price ), 0 ),
NULLIF (MIN (product_price . price ), 0 ),
0
) AS product_price
,
CASE
WHEN MIN (product_modification_price . price ) IS NOT NULL
THEN product_modification_price . currency
WHEN MIN (product_variation_price . price ) IS NOT NULL
THEN product_variation_price . currency
WHEN MIN (product_offer_price . price ) IS NOT NULL
THEN product_offer_price . currency
WHEN MIN (product_price . price ) IS NOT NULL
THEN product_price . currency
ELSE NULL
END AS product_currency
, project_profile_discount . value AS project_discount FROM product INNER JOIN product_categories_product product_event_category ON product_event_category . event = product . event AND product_event_category . category IN (? ) LEFT JOIN product_trans product_trans ON product_trans . event = product . event AND product_trans . local = ? LEFT JOIN product_info product_info ON product_info . product = product . id LEFT JOIN product_active product_active ON product_active . event = product . event LEFT JOIN product_price product_price ON product_price . event = product . event AND product_price . price > 0 LEFT JOIN product_offer product_offer ON product_offer . event = product . event INNER JOIN users_profile project_profile ON
project_profile . id = ? LEFT JOIN product_category category ON category . id = product_event_category . category LEFT JOIN product_category_info category_info ON category_info . event = category . event AND category_info . active IS TRUE LEFT JOIN product_category_trans category_trans ON category_trans . event = category . event AND category_trans . local = ? LEFT JOIN product_category_offers category_offer ON category_offer . id = product_offer . category_offer LEFT JOIN product_offer_price product_offer_price ON product_offer_price . offer = product_offer . id AND product_offer_price . price > 0 LEFT JOIN product_offer_quantity product_offer_quantity ON product_offer_quantity . offer = product_offer . id LEFT JOIN product_variation product_variation ON product_variation . offer = product_offer . id LEFT JOIN product_variation_images product_variation_image ON
product_variation_image . variation = product_variation . id AND
product_variation_image . root = true
LEFT JOIN product_offer_images product_offer_images ON
product_variation_image . name IS NULL AND
product_offer_images . offer = product_offer . id AND
product_offer_images . root = true
LEFT JOIN product_photo product_photo ON
product_offer_images . name IS NULL AND
product_photo . event = product . event AND
product_photo . root = true
LEFT JOIN product_category_variation category_variation ON category_variation . id = product_variation . category_variation LEFT JOIN product_modification product_modification ON product_modification . variation = product_variation . id LEFT JOIN product_invariable product_invariable ON
product_invariable . product = product . id
AND
CASE
WHEN product_offer . const IS NOT NULL THEN product_invariable . offer = product_offer . const
ELSE product_invariable . offer IS NULL
END
AND
CASE
WHEN product_variation . const IS NOT NULL THEN product_invariable . variation = product_variation . const
ELSE product_invariable . variation IS NULL
END
AND
CASE
WHEN product_modification . const IS NOT NULL THEN product_invariable . modification = product_modification . const
ELSE product_invariable . modification IS NULL
END
LEFT JOIN product_variation_price product_variation_price ON product_variation_price . variation = product_variation . id AND product_variation_price . price > 0 LEFT JOIN product_variation_quantity product_variation_quantity ON product_variation_quantity . variation = product_variation . id LEFT JOIN product_category_modification category_modification ON category_modification . id = product_modification . category_modification LEFT JOIN product_modification_price product_modification_price ON product_modification_price . modification = product_modification . id AND product_modification_price . price > 0 LEFT JOIN product_modification_quantity product_modification_quantity ON product_modification_quantity . modification = product_modification . id LEFT JOIN product_modification_images product_modification_image ON
product_modification_image . modification = product_modification . id AND
product_modification_image . root = true
LEFT JOIN user_profile_discount project_profile_discount ON
project_profile_discount . event = project_profile . event WHERE (COALESCE (
NULLIF (product_modification_price . price , 0 ),
NULLIF (product_variation_price . price , 0 ),
NULLIF (product_offer_price . price , 0 ),
NULLIF (product_price . price , 0 ),
0
) > 0 ) AND (
CASE
WHEN product_modification_quantity . quantity IS NOT NULL THEN (product_modification_quantity . quantity - product_modification_quantity . reserve )
WHEN product_variation_quantity . quantity IS NOT NULL THEN (product_variation_quantity . quantity - product_variation_quantity . reserve )
WHEN product_offer_quantity . quantity IS NOT NULL THEN (product_offer_quantity . quantity - product_offer_quantity . reserve )
WHEN product_price . quantity IS NOT NULL THEN (product_price . quantity - product_price . reserve )
ELSE 0
END > 0
) GROUP BY product_price . currency , product_offer_price . currency , product_variation_price . currency , product_modification_price . currency , product . id , product . event , product_trans . name , product_info . url , product_info . sort , product_active . active , product_active . active_from , product_active . active_to , category_offer . card , category_offer . reference , category_variation . card , category_variation . reference , category_modification . card , category_modification . reference , product_modification_image . name , product_variation_image . name , product_offer_images . name , product_photo . name , product_modification_image . ext , product_variation_image . ext , product_offer_images . ext , product_photo . ext , product_modification_image . cdn , product_variation_image . cdn , product_offer_images . cdn , product_photo . cdn , category_info . url , category_trans . name , project_profile_discount . value ORDER BY product_info . sort DESC , SUM (product_modification_quantity . reserve ) DESC , SUM (product_variation_quantity . reserve ) DESC , SUM (product_offer_quantity . reserve ) DESC , SUM (product_price . reserve ) DESC , SUM (product_modification_quantity . quantity ) DESC , SUM (product_variation_quantity . quantity ) DESC , SUM (product_offer_quantity . quantity ) DESC , SUM (product_price . quantity ) DESC LIMIT 6
SELECT
product . id AS product_id ,
product . event AS product_event ,
product_trans . name AS product_name ,
product_info . url AS product_url ,
product_info . sort AS product_sort ,
product_active . active as product_active ,
product_active . active_from as product_active_from ,
product_active . active_to as product_active_to ,
category_offer . card AS category_offer_card ,
category_offer . reference AS product_offer_reference ,
category_variation . card AS category_variation_card ,
category_variation . reference as product_variation_reference ,
category_modification . card AS category_modification_card ,
category_modification . reference as product_modification_reference ,
JSON_AGG (DISTINCT product_invariable . id ) AS invariable ,
CASE WHEN product_modification_image . name IS NOT NULL THEN
CONCAT (
'/upload/product_modification_images' ,
'/' , product_modification_image . name
)
WHEN product_variation_image . name IS NOT NULL THEN
CONCAT (
'/upload/product_variation_images' ,
'/' , product_variation_image . name
)
WHEN product_offer_images . name IS NOT NULL THEN
CONCAT (
'/upload/product_offer_images' ,
'/' , product_offer_images . name
)
WHEN product_photo . name IS NOT NULL THEN
CONCAT (
'/upload/product_photo' , '/' , product_photo . name
)
ELSE
NULL
END AS product_image ,
COALESCE (
product_modification_image . ext ,
product_variation_image . ext , product_offer_images . ext ,
product_photo . ext
) AS product_image_ext ,
COALESCE (
product_modification_image . cdn ,
product_variation_image . cdn , product_offer_images . cdn ,
product_photo . cdn
) AS product_image_cdn ,
category_info . url AS category_url ,
category_trans . name AS category_name ,
COALESCE (
NULLIF (
MIN (
product_modification_price . price
),
0
),
NULLIF (
MIN (product_variation_price . price ),
0
),
NULLIF (
MIN (product_offer_price . price ),
0
),
NULLIF (
MIN (product_price . price ),
0
),
0
) AS product_price ,
CASE WHEN MIN (
product_modification_price . price
) IS NOT NULL THEN
product_modification_price . currency
WHEN MIN (product_variation_price . price ) IS NOT NULL THEN
product_variation_price . currency
WHEN MIN (product_offer_price . price ) IS NOT NULL THEN
product_offer_price . currency
WHEN MIN (product_price . price ) IS NOT NULL THEN
product_price . currency
ELSE
NULL
END AS product_currency ,
project_profile_discount . value AS project_discount
FROM
product
INNER JOIN product_categories_product product_event_category ON product_event_category . event = product . event
AND product_event_category . category IN (? )
LEFT JOIN product_trans product_trans ON product_trans . event = product . event
AND product_trans . local = ?
LEFT JOIN product_info product_info ON product_info . product = product . id
LEFT JOIN product_active product_active ON product_active . event = product . event
LEFT JOIN product_price product_price ON product_price . event = product . event
AND product_price . price > 0
LEFT JOIN product_offer product_offer ON product_offer . event = product . event
INNER JOIN users_profile project_profile ON project_profile . id = ?
LEFT JOIN product_category category ON category . id = product_event_category . category
LEFT JOIN product_category_info category_info ON category_info . event = category . event
AND category_info . active IS TRUE
LEFT JOIN product_category_trans category_trans ON category_trans . event = category . event
AND category_trans . local = ?
LEFT JOIN product_category_offers category_offer ON category_offer . id = product_offer . category_offer
LEFT JOIN product_offer_price product_offer_price ON product_offer_price . offer = product_offer . id
AND product_offer_price . price > 0
LEFT JOIN product_offer_quantity product_offer_quantity ON product_offer_quantity . offer = product_offer . id
LEFT JOIN product_variation product_variation ON product_variation . offer = product_offer . id
LEFT JOIN product_variation_images product_variation_image ON product_variation_image . variation = product_variation . id
AND product_variation_image . root = true
LEFT JOIN product_offer_images product_offer_images ON product_variation_image . name IS NULL
AND product_offer_images . offer = product_offer . id
AND product_offer_images . root = true
LEFT JOIN product_photo product_photo ON product_offer_images . name IS NULL
AND product_photo . event = product . event
AND product_photo . root = true
LEFT JOIN product_category_variation category_variation ON category_variation . id = product_variation . category_variation
LEFT JOIN product_modification product_modification ON product_modification . variation = product_variation . id
LEFT JOIN product_invariable product_invariable ON product_invariable . product = product . id
AND CASE WHEN product_offer . const IS NOT NULL THEN
product_invariable . offer = product_offer . const
ELSE
product_invariable . offer IS NULL
END
AND CASE WHEN product_variation . const IS NOT NULL THEN
product_invariable . variation = product_variation . const
ELSE
product_invariable . variation IS NULL
END
AND CASE WHEN product_modification . const IS NOT NULL THEN
product_invariable . modification = product_modification . const
ELSE
product_invariable . modification IS NULL
END
LEFT JOIN product_variation_price product_variation_price ON product_variation_price . variation = product_variation . id
AND product_variation_price . price > 0
LEFT JOIN product_variation_quantity product_variation_quantity ON product_variation_quantity . variation = product_variation . id
LEFT JOIN product_category_modification category_modification ON category_modification . id = product_modification . category_modification
LEFT JOIN product_modification_price product_modification_price ON product_modification_price . modification = product_modification . id
AND product_modification_price . price > 0
LEFT JOIN product_modification_quantity product_modification_quantity ON product_modification_quantity . modification = product_modification . id
LEFT JOIN product_modification_images product_modification_image ON product_modification_image . modification = product_modification . id
AND product_modification_image . root = true
LEFT JOIN user_profile_discount project_profile_discount ON project_profile_discount . event = project_profile . event
WHERE
(
COALESCE (
NULLIF (
product_modification_price . price ,
0
),
NULLIF (
product_variation_price . price , 0
),
NULLIF (product_offer_price . price , 0 ),
NULLIF (product_price . price , 0 ),
0
) > 0
)
AND (
CASE WHEN product_modification_quantity . quantity IS NOT NULL THEN
(
product_modification_quantity . quantity - product_modification_quantity . reserve
)
WHEN product_variation_quantity . quantity IS NOT NULL THEN
(
product_variation_quantity . quantity - product_variation_quantity . reserve
)
WHEN product_offer_quantity . quantity IS NOT NULL THEN
(
product_offer_quantity . quantity - product_offer_quantity . reserve
)
WHEN product_price . quantity IS NOT NULL THEN
(
product_price . quantity - product_price . reserve
)
ELSE
0
END > 0
)
GROUP BY
product_price . currency ,
product_offer_price . currency ,
product_variation_price . currency ,
product_modification_price . currency ,
product . id ,
product . event ,
product_trans . name ,
product_info . url ,
product_info . sort ,
product_active . active ,
product_active . active_from ,
product_active . active_to ,
category_offer . card ,
category_offer . reference ,
category_variation . card ,
category_variation . reference ,
category_modification . card ,
category_modification . reference ,
product_modification_image . name ,
product_variation_image . name ,
product_offer_images . name ,
product_photo . name ,
product_modification_image . ext ,
product_variation_image . ext ,
product_offer_images . ext ,
product_photo . ext ,
product_modification_image . cdn ,
product_variation_image . cdn ,
product_offer_images . cdn ,
product_photo . cdn ,
category_info . url ,
category_trans . name ,
project_profile_discount . value
ORDER BY
product_info . sort DESC ,
SUM (
product_modification_quantity . reserve
) DESC ,
SUM (
product_variation_quantity . reserve
) DESC ,
SUM (product_offer_quantity . reserve ) DESC ,
SUM (product_price . reserve ) DESC ,
SUM (
product_modification_quantity . quantity
) DESC ,
SUM (
product_variation_quantity . quantity
) DESC ,
SUM (
product_offer_quantity . quantity
) DESC ,
SUM (product_price . quantity ) DESC
LIMIT
6
Copy
SELECT product . id AS product_id , product . event AS product_event , product_trans . name AS product_name , product_info . url AS product_url , product_info . sort AS product_sort , product_active . active as product_active , product_active . active_from as product_active_from , product_active . active_to as product_active_to , category_offer . card AS category_offer_card , category_offer . reference AS product_offer_reference , category_variation . card AS category_variation_card , category_variation . reference as product_variation_reference , category_modification . card AS category_modification_card , category_modification . reference as product_modification_reference , JSON_AGG ( DISTINCT product_invariable . id ) AS invariable ,
CASE
WHEN product_modification_image . name IS NOT NULL THEN
CONCAT ( '/upload/product_modification_images' , '/' , product_modification_image . name )
WHEN product_variation_image . name IS NOT NULL THEN
CONCAT ( '/upload/product_variation_images' , '/' , product_variation_image . name )
WHEN product_offer_images . name IS NOT NULL THEN
CONCAT ( '/upload/product_offer_images' , '/' , product_offer_images . name )
WHEN product_photo . name IS NOT NULL THEN
CONCAT ( '/upload/product_photo' , '/' , product_photo . name )
ELSE NULL
END AS product_image
,
COALESCE (
product_modification_image . ext ,
product_variation_image . ext ,
product_offer_images . ext ,
product_photo . ext
) AS product_image_ext ,
COALESCE (
product_modification_image . cdn ,
product_variation_image . cdn ,
product_offer_images . cdn ,
product_photo . cdn
) AS product_image_cdn , category_info . url AS category_url , category_trans . name AS category_name ,
COALESCE (
NULLIF (MIN (product_modification_price . price ), 0 ),
NULLIF (MIN (product_variation_price . price ), 0 ),
NULLIF (MIN (product_offer_price . price ), 0 ),
NULLIF (MIN (product_price . price ), 0 ),
0
) AS product_price
,
CASE
WHEN MIN (product_modification_price . price ) IS NOT NULL
THEN product_modification_price . currency
WHEN MIN (product_variation_price . price ) IS NOT NULL
THEN product_variation_price . currency
WHEN MIN (product_offer_price . price ) IS NOT NULL
THEN product_offer_price . currency
WHEN MIN (product_price . price ) IS NOT NULL
THEN product_price . currency
ELSE NULL
END AS product_currency
, project_profile_discount . value AS project_discount FROM product INNER JOIN product_categories_product product_event_category ON product_event_category . event = product . event AND product_event_category . category IN ('018f4f55-53d4-7b35-bda7-fad6b852f2f6' ) LEFT JOIN product_trans product_trans ON product_trans . event = product . event AND product_trans . local = 'ru' LEFT JOIN product_info product_info ON product_info . product = product . id LEFT JOIN product_active product_active ON product_active . event = product . event LEFT JOIN product_price product_price ON product_price . event = product . event AND product_price . price > 0 LEFT JOIN product_offer product_offer ON product_offer . event = product . event INNER JOIN users_profile project_profile ON
project_profile . id = '01982ecf-0a6a-79e5-967b-4992d1b836bb' LEFT JOIN product_category category ON category . id = product_event_category . category LEFT JOIN product_category_info category_info ON category_info . event = category . event AND category_info . active IS TRUE LEFT JOIN product_category_trans category_trans ON category_trans . event = category . event AND category_trans . local = 'ru' LEFT JOIN product_category_offers category_offer ON category_offer . id = product_offer . category_offer LEFT JOIN product_offer_price product_offer_price ON product_offer_price . offer = product_offer . id AND product_offer_price . price > 0 LEFT JOIN product_offer_quantity product_offer_quantity ON product_offer_quantity . offer = product_offer . id LEFT JOIN product_variation product_variation ON product_variation . offer = product_offer . id LEFT JOIN product_variation_images product_variation_image ON
product_variation_image . variation = product_variation . id AND
product_variation_image . root = true
LEFT JOIN product_offer_images product_offer_images ON
product_variation_image . name IS NULL AND
product_offer_images . offer = product_offer . id AND
product_offer_images . root = true
LEFT JOIN product_photo product_photo ON
product_offer_images . name IS NULL AND
product_photo . event = product . event AND
product_photo . root = true
LEFT JOIN product_category_variation category_variation ON category_variation . id = product_variation . category_variation LEFT JOIN product_modification product_modification ON product_modification . variation = product_variation . id LEFT JOIN product_invariable product_invariable ON
product_invariable . product = product . id
AND
CASE
WHEN product_offer . const IS NOT NULL THEN product_invariable . offer = product_offer . const
ELSE product_invariable . offer IS NULL
END
AND
CASE
WHEN product_variation . const IS NOT NULL THEN product_invariable . variation = product_variation . const
ELSE product_invariable . variation IS NULL
END
AND
CASE
WHEN product_modification . const IS NOT NULL THEN product_invariable . modification = product_modification . const
ELSE product_invariable . modification IS NULL
END
LEFT JOIN product_variation_price product_variation_price ON product_variation_price . variation = product_variation . id AND product_variation_price . price > 0 LEFT JOIN product_variation_quantity product_variation_quantity ON product_variation_quantity . variation = product_variation . id LEFT JOIN product_category_modification category_modification ON category_modification . id = product_modification . category_modification LEFT JOIN product_modification_price product_modification_price ON product_modification_price . modification = product_modification . id AND product_modification_price . price > 0 LEFT JOIN product_modification_quantity product_modification_quantity ON product_modification_quantity . modification = product_modification . id LEFT JOIN product_modification_images product_modification_image ON
product_modification_image . modification = product_modification . id AND
product_modification_image . root = true
LEFT JOIN user_profile_discount project_profile_discount ON
project_profile_discount . event = project_profile . event WHERE (COALESCE (
NULLIF (product_modification_price . price , 0 ),
NULLIF (product_variation_price . price , 0 ),
NULLIF (product_offer_price . price , 0 ),
NULLIF (product_price . price , 0 ),
0
) > 0 ) AND (
CASE
WHEN product_modification_quantity . quantity IS NOT NULL THEN (product_modification_quantity . quantity - product_modification_quantity . reserve )
WHEN product_variation_quantity . quantity IS NOT NULL THEN (product_variation_quantity . quantity - product_variation_quantity . reserve )
WHEN product_offer_quantity . quantity IS NOT NULL THEN (product_offer_quantity . quantity - product_offer_quantity . reserve )
WHEN product_price . quantity IS NOT NULL THEN (product_price . quantity - product_price . reserve )
ELSE 0
END > 0
) GROUP BY product_price . currency , product_offer_price . currency , product_variation_price . currency , product_modification_price . currency , product . id , product . event , product_trans . name , product_info . url , product_info . sort , product_active . active , product_active . active_from , product_active . active_to , category_offer . card , category_offer . reference , category_variation . card , category_variation . reference , category_modification . card , category_modification . reference , product_modification_image . name , product_variation_image . name , product_offer_images . name , product_photo . name , product_modification_image . ext , product_variation_image . ext , product_offer_images . ext , product_photo . ext , product_modification_image . cdn , product_variation_image . cdn , product_offer_images . cdn , product_photo . cdn , category_info . url , category_trans . name , project_profile_discount . value ORDER BY product_info . sort DESC , SUM (product_modification_quantity . reserve ) DESC , SUM (product_variation_quantity . reserve ) DESC , SUM (product_offer_quantity . reserve ) DESC , SUM (product_price . reserve ) DESC , SUM (product_modification_quantity . quantity ) DESC , SUM (product_variation_quantity . quantity ) DESC , SUM (product_offer_quantity . quantity ) DESC , SUM (product_price . quantity ) DESC LIMIT 6 ;
Copy
16
89.37 ms
SELECT product . id AS product_id , product . event AS product_event , product_trans . name AS product_name , product_info . url AS product_url , product_info . sort AS product_sort , product_active . active as product_active , product_active . active_from as product_active_from , product_active . active_to as product_active_to , category_offer . card AS category_offer_card , category_offer . reference AS product_offer_reference , category_variation . card AS category_variation_card , category_variation . reference as product_variation_reference , category_modification . card AS category_modification_card , category_modification . reference as product_modification_reference , JSON_AGG ( DISTINCT product_invariable . id ) AS invariable ,
CASE
WHEN product_modification_image . name IS NOT NULL THEN
CONCAT ( '/upload/product_modification_images' , '/' , product_modification_image . name )
WHEN product_variation_image . name IS NOT NULL THEN
CONCAT ( '/upload/product_variation_images' , '/' , product_variation_image . name )
WHEN product_offer_images . name IS NOT NULL THEN
CONCAT ( '/upload/product_offer_images' , '/' , product_offer_images . name )
WHEN product_photo . name IS NOT NULL THEN
CONCAT ( '/upload/product_photo' , '/' , product_photo . name )
ELSE NULL
END AS product_image
,
COALESCE (
product_modification_image . ext ,
product_variation_image . ext ,
product_offer_images . ext ,
product_photo . ext
) AS product_image_ext ,
COALESCE (
product_modification_image . cdn ,
product_variation_image . cdn ,
product_offer_images . cdn ,
product_photo . cdn
) AS product_image_cdn , category_info . url AS category_url , category_trans . name AS category_name ,
COALESCE (
NULLIF (MIN (product_modification_price . price ), 0 ),
NULLIF (MIN (product_variation_price . price ), 0 ),
NULLIF (MIN (product_offer_price . price ), 0 ),
NULLIF (MIN (product_price . price ), 0 ),
0
) AS product_price
,
CASE
WHEN MIN (product_modification_price . price ) IS NOT NULL
THEN product_modification_price . currency
WHEN MIN (product_variation_price . price ) IS NOT NULL
THEN product_variation_price . currency
WHEN MIN (product_offer_price . price ) IS NOT NULL
THEN product_offer_price . currency
WHEN MIN (product_price . price ) IS NOT NULL
THEN product_price . currency
ELSE NULL
END AS product_currency
, project_profile_discount . value AS project_discount FROM product INNER JOIN product_categories_product product_event_category ON product_event_category . event = product . event AND product_event_category . category IN (? ) LEFT JOIN product_trans product_trans ON product_trans . event = product . event AND product_trans . local = ? LEFT JOIN product_info product_info ON product_info . product = product . id LEFT JOIN product_active product_active ON product_active . event = product . event LEFT JOIN product_price product_price ON product_price . event = product . event AND product_price . price > 0 LEFT JOIN product_offer product_offer ON product_offer . event = product . event INNER JOIN users_profile project_profile ON
project_profile . id = ? LEFT JOIN product_category category ON category . id = product_event_category . category LEFT JOIN product_category_info category_info ON category_info . event = category . event AND category_info . active IS TRUE LEFT JOIN product_category_trans category_trans ON category_trans . event = category . event AND category_trans . local = ? LEFT JOIN product_category_offers category_offer ON category_offer . id = product_offer . category_offer LEFT JOIN product_offer_price product_offer_price ON product_offer_price . offer = product_offer . id AND product_offer_price . price > 0 LEFT JOIN product_offer_quantity product_offer_quantity ON product_offer_quantity . offer = product_offer . id LEFT JOIN product_variation product_variation ON product_variation . offer = product_offer . id LEFT JOIN product_variation_images product_variation_image ON
product_variation_image . variation = product_variation . id AND
product_variation_image . root = true
LEFT JOIN product_offer_images product_offer_images ON
product_variation_image . name IS NULL AND
product_offer_images . offer = product_offer . id AND
product_offer_images . root = true
LEFT JOIN product_photo product_photo ON
product_offer_images . name IS NULL AND
product_photo . event = product . event AND
product_photo . root = true
LEFT JOIN product_category_variation category_variation ON category_variation . id = product_variation . category_variation LEFT JOIN product_modification product_modification ON product_modification . variation = product_variation . id LEFT JOIN product_invariable product_invariable ON
product_invariable . product = product . id
AND
CASE
WHEN product_offer . const IS NOT NULL THEN product_invariable . offer = product_offer . const
ELSE product_invariable . offer IS NULL
END
AND
CASE
WHEN product_variation . const IS NOT NULL THEN product_invariable . variation = product_variation . const
ELSE product_invariable . variation IS NULL
END
AND
CASE
WHEN product_modification . const IS NOT NULL THEN product_invariable . modification = product_modification . const
ELSE product_invariable . modification IS NULL
END
LEFT JOIN product_variation_price product_variation_price ON product_variation_price . variation = product_variation . id AND product_variation_price . price > 0 LEFT JOIN product_variation_quantity product_variation_quantity ON product_variation_quantity . variation = product_variation . id LEFT JOIN product_category_modification category_modification ON category_modification . id = product_modification . category_modification LEFT JOIN product_modification_price product_modification_price ON product_modification_price . modification = product_modification . id AND product_modification_price . price > 0 LEFT JOIN product_modification_quantity product_modification_quantity ON product_modification_quantity . modification = product_modification . id LEFT JOIN product_modification_images product_modification_image ON
product_modification_image . modification = product_modification . id AND
product_modification_image . root = true
LEFT JOIN user_profile_discount project_profile_discount ON
project_profile_discount . event = project_profile . event WHERE (COALESCE (
NULLIF (product_modification_price . price , 0 ),
NULLIF (product_variation_price . price , 0 ),
NULLIF (product_offer_price . price , 0 ),
NULLIF (product_price . price , 0 ),
0
) > 0 ) AND (
CASE
WHEN product_modification_quantity . quantity IS NOT NULL THEN (product_modification_quantity . quantity - product_modification_quantity . reserve )
WHEN product_variation_quantity . quantity IS NOT NULL THEN (product_variation_quantity . quantity - product_variation_quantity . reserve )
WHEN product_offer_quantity . quantity IS NOT NULL THEN (product_offer_quantity . quantity - product_offer_quantity . reserve )
WHEN product_price . quantity IS NOT NULL THEN (product_price . quantity - product_price . reserve )
ELSE 0
END > 0
) GROUP BY product_price . currency , product_offer_price . currency , product_variation_price . currency , product_modification_price . currency , product . id , product . event , product_trans . name , product_info . url , product_info . sort , product_active . active , product_active . active_from , product_active . active_to , category_offer . card , category_offer . reference , category_variation . card , category_variation . reference , category_modification . card , category_modification . reference , product_modification_image . name , product_variation_image . name , product_offer_images . name , product_photo . name , product_modification_image . ext , product_variation_image . ext , product_offer_images . ext , product_photo . ext , product_modification_image . cdn , product_variation_image . cdn , product_offer_images . cdn , product_photo . cdn , category_info . url , category_trans . name , project_profile_discount . value ORDER BY product_info . sort DESC , SUM (product_modification_quantity . reserve ) DESC , SUM (product_variation_quantity . reserve ) DESC , SUM (product_offer_quantity . reserve ) DESC , SUM (product_price . reserve ) DESC , SUM (product_modification_quantity . quantity ) DESC , SUM (product_variation_quantity . quantity ) DESC , SUM (product_offer_quantity . quantity ) DESC , SUM (product_price . quantity ) DESC LIMIT 6
SELECT
product . id AS product_id ,
product . event AS product_event ,
product_trans . name AS product_name ,
product_info . url AS product_url ,
product_info . sort AS product_sort ,
product_active . active as product_active ,
product_active . active_from as product_active_from ,
product_active . active_to as product_active_to ,
category_offer . card AS category_offer_card ,
category_offer . reference AS product_offer_reference ,
category_variation . card AS category_variation_card ,
category_variation . reference as product_variation_reference ,
category_modification . card AS category_modification_card ,
category_modification . reference as product_modification_reference ,
JSON_AGG (DISTINCT product_invariable . id ) AS invariable ,
CASE WHEN product_modification_image . name IS NOT NULL THEN
CONCAT (
'/upload/product_modification_images' ,
'/' , product_modification_image . name
)
WHEN product_variation_image . name IS NOT NULL THEN
CONCAT (
'/upload/product_variation_images' ,
'/' , product_variation_image . name
)
WHEN product_offer_images . name IS NOT NULL THEN
CONCAT (
'/upload/product_offer_images' ,
'/' , product_offer_images . name
)
WHEN product_photo . name IS NOT NULL THEN
CONCAT (
'/upload/product_photo' , '/' , product_photo . name
)
ELSE
NULL
END AS product_image ,
COALESCE (
product_modification_image . ext ,
product_variation_image . ext , product_offer_images . ext ,
product_photo . ext
) AS product_image_ext ,
COALESCE (
product_modification_image . cdn ,
product_variation_image . cdn , product_offer_images . cdn ,
product_photo . cdn
) AS product_image_cdn ,
category_info . url AS category_url ,
category_trans . name AS category_name ,
COALESCE (
NULLIF (
MIN (
product_modification_price . price
),
0
),
NULLIF (
MIN (product_variation_price . price ),
0
),
NULLIF (
MIN (product_offer_price . price ),
0
),
NULLIF (
MIN (product_price . price ),
0
),
0
) AS product_price ,
CASE WHEN MIN (
product_modification_price . price
) IS NOT NULL THEN
product_modification_price . currency
WHEN MIN (product_variation_price . price ) IS NOT NULL THEN
product_variation_price . currency
WHEN MIN (product_offer_price . price ) IS NOT NULL THEN
product_offer_price . currency
WHEN MIN (product_price . price ) IS NOT NULL THEN
product_price . currency
ELSE
NULL
END AS product_currency ,
project_profile_discount . value AS project_discount
FROM
product
INNER JOIN product_categories_product product_event_category ON product_event_category . event = product . event
AND product_event_category . category IN (? )
LEFT JOIN product_trans product_trans ON product_trans . event = product . event
AND product_trans . local = ?
LEFT JOIN product_info product_info ON product_info . product = product . id
LEFT JOIN product_active product_active ON product_active . event = product . event
LEFT JOIN product_price product_price ON product_price . event = product . event
AND product_price . price > 0
LEFT JOIN product_offer product_offer ON product_offer . event = product . event
INNER JOIN users_profile project_profile ON project_profile . id = ?
LEFT JOIN product_category category ON category . id = product_event_category . category
LEFT JOIN product_category_info category_info ON category_info . event = category . event
AND category_info . active IS TRUE
LEFT JOIN product_category_trans category_trans ON category_trans . event = category . event
AND category_trans . local = ?
LEFT JOIN product_category_offers category_offer ON category_offer . id = product_offer . category_offer
LEFT JOIN product_offer_price product_offer_price ON product_offer_price . offer = product_offer . id
AND product_offer_price . price > 0
LEFT JOIN product_offer_quantity product_offer_quantity ON product_offer_quantity . offer = product_offer . id
LEFT JOIN product_variation product_variation ON product_variation . offer = product_offer . id
LEFT JOIN product_variation_images product_variation_image ON product_variation_image . variation = product_variation . id
AND product_variation_image . root = true
LEFT JOIN product_offer_images product_offer_images ON product_variation_image . name IS NULL
AND product_offer_images . offer = product_offer . id
AND product_offer_images . root = true
LEFT JOIN product_photo product_photo ON product_offer_images . name IS NULL
AND product_photo . event = product . event
AND product_photo . root = true
LEFT JOIN product_category_variation category_variation ON category_variation . id = product_variation . category_variation
LEFT JOIN product_modification product_modification ON product_modification . variation = product_variation . id
LEFT JOIN product_invariable product_invariable ON product_invariable . product = product . id
AND CASE WHEN product_offer . const IS NOT NULL THEN
product_invariable . offer = product_offer . const
ELSE
product_invariable . offer IS NULL
END
AND CASE WHEN product_variation . const IS NOT NULL THEN
product_invariable . variation = product_variation . const
ELSE
product_invariable . variation IS NULL
END
AND CASE WHEN product_modification . const IS NOT NULL THEN
product_invariable . modification = product_modification . const
ELSE
product_invariable . modification IS NULL
END
LEFT JOIN product_variation_price product_variation_price ON product_variation_price . variation = product_variation . id
AND product_variation_price . price > 0
LEFT JOIN product_variation_quantity product_variation_quantity ON product_variation_quantity . variation = product_variation . id
LEFT JOIN product_category_modification category_modification ON category_modification . id = product_modification . category_modification
LEFT JOIN product_modification_price product_modification_price ON product_modification_price . modification = product_modification . id
AND product_modification_price . price > 0
LEFT JOIN product_modification_quantity product_modification_quantity ON product_modification_quantity . modification = product_modification . id
LEFT JOIN product_modification_images product_modification_image ON product_modification_image . modification = product_modification . id
AND product_modification_image . root = true
LEFT JOIN user_profile_discount project_profile_discount ON project_profile_discount . event = project_profile . event
WHERE
(
COALESCE (
NULLIF (
product_modification_price . price ,
0
),
NULLIF (
product_variation_price . price , 0
),
NULLIF (product_offer_price . price , 0 ),
NULLIF (product_price . price , 0 ),
0
) > 0
)
AND (
CASE WHEN product_modification_quantity . quantity IS NOT NULL THEN
(
product_modification_quantity . quantity - product_modification_quantity . reserve
)
WHEN product_variation_quantity . quantity IS NOT NULL THEN
(
product_variation_quantity . quantity - product_variation_quantity . reserve
)
WHEN product_offer_quantity . quantity IS NOT NULL THEN
(
product_offer_quantity . quantity - product_offer_quantity . reserve
)
WHEN product_price . quantity IS NOT NULL THEN
(
product_price . quantity - product_price . reserve
)
ELSE
0
END > 0
)
GROUP BY
product_price . currency ,
product_offer_price . currency ,
product_variation_price . currency ,
product_modification_price . currency ,
product . id ,
product . event ,
product_trans . name ,
product_info . url ,
product_info . sort ,
product_active . active ,
product_active . active_from ,
product_active . active_to ,
category_offer . card ,
category_offer . reference ,
category_variation . card ,
category_variation . reference ,
category_modification . card ,
category_modification . reference ,
product_modification_image . name ,
product_variation_image . name ,
product_offer_images . name ,
product_photo . name ,
product_modification_image . ext ,
product_variation_image . ext ,
product_offer_images . ext ,
product_photo . ext ,
product_modification_image . cdn ,
product_variation_image . cdn ,
product_offer_images . cdn ,
product_photo . cdn ,
category_info . url ,
category_trans . name ,
project_profile_discount . value
ORDER BY
product_info . sort DESC ,
SUM (
product_modification_quantity . reserve
) DESC ,
SUM (
product_variation_quantity . reserve
) DESC ,
SUM (product_offer_quantity . reserve ) DESC ,
SUM (product_price . reserve ) DESC ,
SUM (
product_modification_quantity . quantity
) DESC ,
SUM (
product_variation_quantity . quantity
) DESC ,
SUM (
product_offer_quantity . quantity
) DESC ,
SUM (product_price . quantity ) DESC
LIMIT
6
Copy
SELECT product . id AS product_id , product . event AS product_event , product_trans . name AS product_name , product_info . url AS product_url , product_info . sort AS product_sort , product_active . active as product_active , product_active . active_from as product_active_from , product_active . active_to as product_active_to , category_offer . card AS category_offer_card , category_offer . reference AS product_offer_reference , category_variation . card AS category_variation_card , category_variation . reference as product_variation_reference , category_modification . card AS category_modification_card , category_modification . reference as product_modification_reference , JSON_AGG ( DISTINCT product_invariable . id ) AS invariable ,
CASE
WHEN product_modification_image . name IS NOT NULL THEN
CONCAT ( '/upload/product_modification_images' , '/' , product_modification_image . name )
WHEN product_variation_image . name IS NOT NULL THEN
CONCAT ( '/upload/product_variation_images' , '/' , product_variation_image . name )
WHEN product_offer_images . name IS NOT NULL THEN
CONCAT ( '/upload/product_offer_images' , '/' , product_offer_images . name )
WHEN product_photo . name IS NOT NULL THEN
CONCAT ( '/upload/product_photo' , '/' , product_photo . name )
ELSE NULL
END AS product_image
,
COALESCE (
product_modification_image . ext ,
product_variation_image . ext ,
product_offer_images . ext ,
product_photo . ext
) AS product_image_ext ,
COALESCE (
product_modification_image . cdn ,
product_variation_image . cdn ,
product_offer_images . cdn ,
product_photo . cdn
) AS product_image_cdn , category_info . url AS category_url , category_trans . name AS category_name ,
COALESCE (
NULLIF (MIN (product_modification_price . price ), 0 ),
NULLIF (MIN (product_variation_price . price ), 0 ),
NULLIF (MIN (product_offer_price . price ), 0 ),
NULLIF (MIN (product_price . price ), 0 ),
0
) AS product_price
,
CASE
WHEN MIN (product_modification_price . price ) IS NOT NULL
THEN product_modification_price . currency
WHEN MIN (product_variation_price . price ) IS NOT NULL
THEN product_variation_price . currency
WHEN MIN (product_offer_price . price ) IS NOT NULL
THEN product_offer_price . currency
WHEN MIN (product_price . price ) IS NOT NULL
THEN product_price . currency
ELSE NULL
END AS product_currency
, project_profile_discount . value AS project_discount FROM product INNER JOIN product_categories_product product_event_category ON product_event_category . event = product . event AND product_event_category . category IN ('01905ea6-805e-7a56-b53c-da41c19f9e38' ) LEFT JOIN product_trans product_trans ON product_trans . event = product . event AND product_trans . local = 'ru' LEFT JOIN product_info product_info ON product_info . product = product . id LEFT JOIN product_active product_active ON product_active . event = product . event LEFT JOIN product_price product_price ON product_price . event = product . event AND product_price . price > 0 LEFT JOIN product_offer product_offer ON product_offer . event = product . event INNER JOIN users_profile project_profile ON
project_profile . id = '01982ecf-0a6a-79e5-967b-4992d1b836bb' LEFT JOIN product_category category ON category . id = product_event_category . category LEFT JOIN product_category_info category_info ON category_info . event = category . event AND category_info . active IS TRUE LEFT JOIN product_category_trans category_trans ON category_trans . event = category . event AND category_trans . local = 'ru' LEFT JOIN product_category_offers category_offer ON category_offer . id = product_offer . category_offer LEFT JOIN product_offer_price product_offer_price ON product_offer_price . offer = product_offer . id AND product_offer_price . price > 0 LEFT JOIN product_offer_quantity product_offer_quantity ON product_offer_quantity . offer = product_offer . id LEFT JOIN product_variation product_variation ON product_variation . offer = product_offer . id LEFT JOIN product_variation_images product_variation_image ON
product_variation_image . variation = product_variation . id AND
product_variation_image . root = true
LEFT JOIN product_offer_images product_offer_images ON
product_variation_image . name IS NULL AND
product_offer_images . offer = product_offer . id AND
product_offer_images . root = true
LEFT JOIN product_photo product_photo ON
product_offer_images . name IS NULL AND
product_photo . event = product . event AND
product_photo . root = true
LEFT JOIN product_category_variation category_variation ON category_variation . id = product_variation . category_variation LEFT JOIN product_modification product_modification ON product_modification . variation = product_variation . id LEFT JOIN product_invariable product_invariable ON
product_invariable . product = product . id
AND
CASE
WHEN product_offer . const IS NOT NULL THEN product_invariable . offer = product_offer . const
ELSE product_invariable . offer IS NULL
END
AND
CASE
WHEN product_variation . const IS NOT NULL THEN product_invariable . variation = product_variation . const
ELSE product_invariable . variation IS NULL
END
AND
CASE
WHEN product_modification . const IS NOT NULL THEN product_invariable . modification = product_modification . const
ELSE product_invariable . modification IS NULL
END
LEFT JOIN product_variation_price product_variation_price ON product_variation_price . variation = product_variation . id AND product_variation_price . price > 0 LEFT JOIN product_variation_quantity product_variation_quantity ON product_variation_quantity . variation = product_variation . id LEFT JOIN product_category_modification category_modification ON category_modification . id = product_modification . category_modification LEFT JOIN product_modification_price product_modification_price ON product_modification_price . modification = product_modification . id AND product_modification_price . price > 0 LEFT JOIN product_modification_quantity product_modification_quantity ON product_modification_quantity . modification = product_modification . id LEFT JOIN product_modification_images product_modification_image ON
product_modification_image . modification = product_modification . id AND
product_modification_image . root = true
LEFT JOIN user_profile_discount project_profile_discount ON
project_profile_discount . event = project_profile . event WHERE (COALESCE (
NULLIF (product_modification_price . price , 0 ),
NULLIF (product_variation_price . price , 0 ),
NULLIF (product_offer_price . price , 0 ),
NULLIF (product_price . price , 0 ),
0
) > 0 ) AND (
CASE
WHEN product_modification_quantity . quantity IS NOT NULL THEN (product_modification_quantity . quantity - product_modification_quantity . reserve )
WHEN product_variation_quantity . quantity IS NOT NULL THEN (product_variation_quantity . quantity - product_variation_quantity . reserve )
WHEN product_offer_quantity . quantity IS NOT NULL THEN (product_offer_quantity . quantity - product_offer_quantity . reserve )
WHEN product_price . quantity IS NOT NULL THEN (product_price . quantity - product_price . reserve )
ELSE 0
END > 0
) GROUP BY product_price . currency , product_offer_price . currency , product_variation_price . currency , product_modification_price . currency , product . id , product . event , product_trans . name , product_info . url , product_info . sort , product_active . active , product_active . active_from , product_active . active_to , category_offer . card , category_offer . reference , category_variation . card , category_variation . reference , category_modification . card , category_modification . reference , product_modification_image . name , product_variation_image . name , product_offer_images . name , product_photo . name , product_modification_image . ext , product_variation_image . ext , product_offer_images . ext , product_photo . ext , product_modification_image . cdn , product_variation_image . cdn , product_offer_images . cdn , product_photo . cdn , category_info . url , category_trans . name , project_profile_discount . value ORDER BY product_info . sort DESC , SUM (product_modification_quantity . reserve ) DESC , SUM (product_variation_quantity . reserve ) DESC , SUM (product_offer_quantity . reserve ) DESC , SUM (product_price . reserve ) DESC , SUM (product_modification_quantity . quantity ) DESC , SUM (product_variation_quantity . quantity ) DESC , SUM (product_offer_quantity . quantity ) DESC , SUM (product_price . quantity ) DESC LIMIT 6 ;
Copy
17
88.32 ms
SELECT product . id AS product_id , product . event AS product_event , product_trans . name AS product_name , product_info . url AS product_url , product_info . sort AS product_sort , product_active . active as product_active , product_active . active_from as product_active_from , product_active . active_to as product_active_to , category_offer . card AS category_offer_card , category_offer . reference AS product_offer_reference , category_variation . card AS category_variation_card , category_variation . reference as product_variation_reference , category_modification . card AS category_modification_card , category_modification . reference as product_modification_reference , JSON_AGG ( DISTINCT product_invariable . id ) AS invariable ,
CASE
WHEN product_modification_image . name IS NOT NULL THEN
CONCAT ( '/upload/product_modification_images' , '/' , product_modification_image . name )
WHEN product_variation_image . name IS NOT NULL THEN
CONCAT ( '/upload/product_variation_images' , '/' , product_variation_image . name )
WHEN product_offer_images . name IS NOT NULL THEN
CONCAT ( '/upload/product_offer_images' , '/' , product_offer_images . name )
WHEN product_photo . name IS NOT NULL THEN
CONCAT ( '/upload/product_photo' , '/' , product_photo . name )
ELSE NULL
END AS product_image
,
COALESCE (
product_modification_image . ext ,
product_variation_image . ext ,
product_offer_images . ext ,
product_photo . ext
) AS product_image_ext ,
COALESCE (
product_modification_image . cdn ,
product_variation_image . cdn ,
product_offer_images . cdn ,
product_photo . cdn
) AS product_image_cdn , category_info . url AS category_url , category_trans . name AS category_name ,
COALESCE (
NULLIF (MIN (product_modification_price . price ), 0 ),
NULLIF (MIN (product_variation_price . price ), 0 ),
NULLIF (MIN (product_offer_price . price ), 0 ),
NULLIF (MIN (product_price . price ), 0 ),
0
) AS product_price
,
CASE
WHEN MIN (product_modification_price . price ) IS NOT NULL
THEN product_modification_price . currency
WHEN MIN (product_variation_price . price ) IS NOT NULL
THEN product_variation_price . currency
WHEN MIN (product_offer_price . price ) IS NOT NULL
THEN product_offer_price . currency
WHEN MIN (product_price . price ) IS NOT NULL
THEN product_price . currency
ELSE NULL
END AS product_currency
, project_profile_discount . value AS project_discount FROM product INNER JOIN product_categories_product product_event_category ON product_event_category . event = product . event AND product_event_category . category IN (? ) LEFT JOIN product_trans product_trans ON product_trans . event = product . event AND product_trans . local = ? LEFT JOIN product_info product_info ON product_info . product = product . id LEFT JOIN product_active product_active ON product_active . event = product . event LEFT JOIN product_price product_price ON product_price . event = product . event AND product_price . price > 0 LEFT JOIN product_offer product_offer ON product_offer . event = product . event INNER JOIN users_profile project_profile ON
project_profile . id = ? LEFT JOIN product_category category ON category . id = product_event_category . category LEFT JOIN product_category_info category_info ON category_info . event = category . event AND category_info . active IS TRUE LEFT JOIN product_category_trans category_trans ON category_trans . event = category . event AND category_trans . local = ? LEFT JOIN product_category_offers category_offer ON category_offer . id = product_offer . category_offer LEFT JOIN product_offer_price product_offer_price ON product_offer_price . offer = product_offer . id AND product_offer_price . price > 0 LEFT JOIN product_offer_quantity product_offer_quantity ON product_offer_quantity . offer = product_offer . id LEFT JOIN product_variation product_variation ON product_variation . offer = product_offer . id LEFT JOIN product_variation_images product_variation_image ON
product_variation_image . variation = product_variation . id AND
product_variation_image . root = true
LEFT JOIN product_offer_images product_offer_images ON
product_variation_image . name IS NULL AND
product_offer_images . offer = product_offer . id AND
product_offer_images . root = true
LEFT JOIN product_photo product_photo ON
product_offer_images . name IS NULL AND
product_photo . event = product . event AND
product_photo . root = true
LEFT JOIN product_category_variation category_variation ON category_variation . id = product_variation . category_variation LEFT JOIN product_modification product_modification ON product_modification . variation = product_variation . id LEFT JOIN product_invariable product_invariable ON
product_invariable . product = product . id
AND
CASE
WHEN product_offer . const IS NOT NULL THEN product_invariable . offer = product_offer . const
ELSE product_invariable . offer IS NULL
END
AND
CASE
WHEN product_variation . const IS NOT NULL THEN product_invariable . variation = product_variation . const
ELSE product_invariable . variation IS NULL
END
AND
CASE
WHEN product_modification . const IS NOT NULL THEN product_invariable . modification = product_modification . const
ELSE product_invariable . modification IS NULL
END
LEFT JOIN product_variation_price product_variation_price ON product_variation_price . variation = product_variation . id AND product_variation_price . price > 0 LEFT JOIN product_variation_quantity product_variation_quantity ON product_variation_quantity . variation = product_variation . id LEFT JOIN product_category_modification category_modification ON category_modification . id = product_modification . category_modification LEFT JOIN product_modification_price product_modification_price ON product_modification_price . modification = product_modification . id AND product_modification_price . price > 0 LEFT JOIN product_modification_quantity product_modification_quantity ON product_modification_quantity . modification = product_modification . id LEFT JOIN product_modification_images product_modification_image ON
product_modification_image . modification = product_modification . id AND
product_modification_image . root = true
LEFT JOIN user_profile_discount project_profile_discount ON
project_profile_discount . event = project_profile . event WHERE (COALESCE (
NULLIF (product_modification_price . price , 0 ),
NULLIF (product_variation_price . price , 0 ),
NULLIF (product_offer_price . price , 0 ),
NULLIF (product_price . price , 0 ),
0
) > 0 ) AND (
CASE
WHEN product_modification_quantity . quantity IS NOT NULL THEN (product_modification_quantity . quantity - product_modification_quantity . reserve )
WHEN product_variation_quantity . quantity IS NOT NULL THEN (product_variation_quantity . quantity - product_variation_quantity . reserve )
WHEN product_offer_quantity . quantity IS NOT NULL THEN (product_offer_quantity . quantity - product_offer_quantity . reserve )
WHEN product_price . quantity IS NOT NULL THEN (product_price . quantity - product_price . reserve )
ELSE 0
END > 0
) GROUP BY product_price . currency , product_offer_price . currency , product_variation_price . currency , product_modification_price . currency , product . id , product . event , product_trans . name , product_info . url , product_info . sort , product_active . active , product_active . active_from , product_active . active_to , category_offer . card , category_offer . reference , category_variation . card , category_variation . reference , category_modification . card , category_modification . reference , product_modification_image . name , product_variation_image . name , product_offer_images . name , product_photo . name , product_modification_image . ext , product_variation_image . ext , product_offer_images . ext , product_photo . ext , product_modification_image . cdn , product_variation_image . cdn , product_offer_images . cdn , product_photo . cdn , category_info . url , category_trans . name , project_profile_discount . value ORDER BY product_info . sort DESC , SUM (product_modification_quantity . reserve ) DESC , SUM (product_variation_quantity . reserve ) DESC , SUM (product_offer_quantity . reserve ) DESC , SUM (product_price . reserve ) DESC , SUM (product_modification_quantity . quantity ) DESC , SUM (product_variation_quantity . quantity ) DESC , SUM (product_offer_quantity . quantity ) DESC , SUM (product_price . quantity ) DESC LIMIT 6
SELECT
product . id AS product_id ,
product . event AS product_event ,
product_trans . name AS product_name ,
product_info . url AS product_url ,
product_info . sort AS product_sort ,
product_active . active as product_active ,
product_active . active_from as product_active_from ,
product_active . active_to as product_active_to ,
category_offer . card AS category_offer_card ,
category_offer . reference AS product_offer_reference ,
category_variation . card AS category_variation_card ,
category_variation . reference as product_variation_reference ,
category_modification . card AS category_modification_card ,
category_modification . reference as product_modification_reference ,
JSON_AGG (DISTINCT product_invariable . id ) AS invariable ,
CASE WHEN product_modification_image . name IS NOT NULL THEN
CONCAT (
'/upload/product_modification_images' ,
'/' , product_modification_image . name
)
WHEN product_variation_image . name IS NOT NULL THEN
CONCAT (
'/upload/product_variation_images' ,
'/' , product_variation_image . name
)
WHEN product_offer_images . name IS NOT NULL THEN
CONCAT (
'/upload/product_offer_images' ,
'/' , product_offer_images . name
)
WHEN product_photo . name IS NOT NULL THEN
CONCAT (
'/upload/product_photo' , '/' , product_photo . name
)
ELSE
NULL
END AS product_image ,
COALESCE (
product_modification_image . ext ,
product_variation_image . ext , product_offer_images . ext ,
product_photo . ext
) AS product_image_ext ,
COALESCE (
product_modification_image . cdn ,
product_variation_image . cdn , product_offer_images . cdn ,
product_photo . cdn
) AS product_image_cdn ,
category_info . url AS category_url ,
category_trans . name AS category_name ,
COALESCE (
NULLIF (
MIN (
product_modification_price . price
),
0
),
NULLIF (
MIN (product_variation_price . price ),
0
),
NULLIF (
MIN (product_offer_price . price ),
0
),
NULLIF (
MIN (product_price . price ),
0
),
0
) AS product_price ,
CASE WHEN MIN (
product_modification_price . price
) IS NOT NULL THEN
product_modification_price . currency
WHEN MIN (product_variation_price . price ) IS NOT NULL THEN
product_variation_price . currency
WHEN MIN (product_offer_price . price ) IS NOT NULL THEN
product_offer_price . currency
WHEN MIN (product_price . price ) IS NOT NULL THEN
product_price . currency
ELSE
NULL
END AS product_currency ,
project_profile_discount . value AS project_discount
FROM
product
INNER JOIN product_categories_product product_event_category ON product_event_category . event = product . event
AND product_event_category . category IN (? )
LEFT JOIN product_trans product_trans ON product_trans . event = product . event
AND product_trans . local = ?
LEFT JOIN product_info product_info ON product_info . product = product . id
LEFT JOIN product_active product_active ON product_active . event = product . event
LEFT JOIN product_price product_price ON product_price . event = product . event
AND product_price . price > 0
LEFT JOIN product_offer product_offer ON product_offer . event = product . event
INNER JOIN users_profile project_profile ON project_profile . id = ?
LEFT JOIN product_category category ON category . id = product_event_category . category
LEFT JOIN product_category_info category_info ON category_info . event = category . event
AND category_info . active IS TRUE
LEFT JOIN product_category_trans category_trans ON category_trans . event = category . event
AND category_trans . local = ?
LEFT JOIN product_category_offers category_offer ON category_offer . id = product_offer . category_offer
LEFT JOIN product_offer_price product_offer_price ON product_offer_price . offer = product_offer . id
AND product_offer_price . price > 0
LEFT JOIN product_offer_quantity product_offer_quantity ON product_offer_quantity . offer = product_offer . id
LEFT JOIN product_variation product_variation ON product_variation . offer = product_offer . id
LEFT JOIN product_variation_images product_variation_image ON product_variation_image . variation = product_variation . id
AND product_variation_image . root = true
LEFT JOIN product_offer_images product_offer_images ON product_variation_image . name IS NULL
AND product_offer_images . offer = product_offer . id
AND product_offer_images . root = true
LEFT JOIN product_photo product_photo ON product_offer_images . name IS NULL
AND product_photo . event = product . event
AND product_photo . root = true
LEFT JOIN product_category_variation category_variation ON category_variation . id = product_variation . category_variation
LEFT JOIN product_modification product_modification ON product_modification . variation = product_variation . id
LEFT JOIN product_invariable product_invariable ON product_invariable . product = product . id
AND CASE WHEN product_offer . const IS NOT NULL THEN
product_invariable . offer = product_offer . const
ELSE
product_invariable . offer IS NULL
END
AND CASE WHEN product_variation . const IS NOT NULL THEN
product_invariable . variation = product_variation . const
ELSE
product_invariable . variation IS NULL
END
AND CASE WHEN product_modification . const IS NOT NULL THEN
product_invariable . modification = product_modification . const
ELSE
product_invariable . modification IS NULL
END
LEFT JOIN product_variation_price product_variation_price ON product_variation_price . variation = product_variation . id
AND product_variation_price . price > 0
LEFT JOIN product_variation_quantity product_variation_quantity ON product_variation_quantity . variation = product_variation . id
LEFT JOIN product_category_modification category_modification ON category_modification . id = product_modification . category_modification
LEFT JOIN product_modification_price product_modification_price ON product_modification_price . modification = product_modification . id
AND product_modification_price . price > 0
LEFT JOIN product_modification_quantity product_modification_quantity ON product_modification_quantity . modification = product_modification . id
LEFT JOIN product_modification_images product_modification_image ON product_modification_image . modification = product_modification . id
AND product_modification_image . root = true
LEFT JOIN user_profile_discount project_profile_discount ON project_profile_discount . event = project_profile . event
WHERE
(
COALESCE (
NULLIF (
product_modification_price . price ,
0
),
NULLIF (
product_variation_price . price , 0
),
NULLIF (product_offer_price . price , 0 ),
NULLIF (product_price . price , 0 ),
0
) > 0
)
AND (
CASE WHEN product_modification_quantity . quantity IS NOT NULL THEN
(
product_modification_quantity . quantity - product_modification_quantity . reserve
)
WHEN product_variation_quantity . quantity IS NOT NULL THEN
(
product_variation_quantity . quantity - product_variation_quantity . reserve
)
WHEN product_offer_quantity . quantity IS NOT NULL THEN
(
product_offer_quantity . quantity - product_offer_quantity . reserve
)
WHEN product_price . quantity IS NOT NULL THEN
(
product_price . quantity - product_price . reserve
)
ELSE
0
END > 0
)
GROUP BY
product_price . currency ,
product_offer_price . currency ,
product_variation_price . currency ,
product_modification_price . currency ,
product . id ,
product . event ,
product_trans . name ,
product_info . url ,
product_info . sort ,
product_active . active ,
product_active . active_from ,
product_active . active_to ,
category_offer . card ,
category_offer . reference ,
category_variation . card ,
category_variation . reference ,
category_modification . card ,
category_modification . reference ,
product_modification_image . name ,
product_variation_image . name ,
product_offer_images . name ,
product_photo . name ,
product_modification_image . ext ,
product_variation_image . ext ,
product_offer_images . ext ,
product_photo . ext ,
product_modification_image . cdn ,
product_variation_image . cdn ,
product_offer_images . cdn ,
product_photo . cdn ,
category_info . url ,
category_trans . name ,
project_profile_discount . value
ORDER BY
product_info . sort DESC ,
SUM (
product_modification_quantity . reserve
) DESC ,
SUM (
product_variation_quantity . reserve
) DESC ,
SUM (product_offer_quantity . reserve ) DESC ,
SUM (product_price . reserve ) DESC ,
SUM (
product_modification_quantity . quantity
) DESC ,
SUM (
product_variation_quantity . quantity
) DESC ,
SUM (
product_offer_quantity . quantity
) DESC ,
SUM (product_price . quantity ) DESC
LIMIT
6
Copy
SELECT product . id AS product_id , product . event AS product_event , product_trans . name AS product_name , product_info . url AS product_url , product_info . sort AS product_sort , product_active . active as product_active , product_active . active_from as product_active_from , product_active . active_to as product_active_to , category_offer . card AS category_offer_card , category_offer . reference AS product_offer_reference , category_variation . card AS category_variation_card , category_variation . reference as product_variation_reference , category_modification . card AS category_modification_card , category_modification . reference as product_modification_reference , JSON_AGG ( DISTINCT product_invariable . id ) AS invariable ,
CASE
WHEN product_modification_image . name IS NOT NULL THEN
CONCAT ( '/upload/product_modification_images' , '/' , product_modification_image . name )
WHEN product_variation_image . name IS NOT NULL THEN
CONCAT ( '/upload/product_variation_images' , '/' , product_variation_image . name )
WHEN product_offer_images . name IS NOT NULL THEN
CONCAT ( '/upload/product_offer_images' , '/' , product_offer_images . name )
WHEN product_photo . name IS NOT NULL THEN
CONCAT ( '/upload/product_photo' , '/' , product_photo . name )
ELSE NULL
END AS product_image
,
COALESCE (
product_modification_image . ext ,
product_variation_image . ext ,
product_offer_images . ext ,
product_photo . ext
) AS product_image_ext ,
COALESCE (
product_modification_image . cdn ,
product_variation_image . cdn ,
product_offer_images . cdn ,
product_photo . cdn
) AS product_image_cdn , category_info . url AS category_url , category_trans . name AS category_name ,
COALESCE (
NULLIF (MIN (product_modification_price . price ), 0 ),
NULLIF (MIN (product_variation_price . price ), 0 ),
NULLIF (MIN (product_offer_price . price ), 0 ),
NULLIF (MIN (product_price . price ), 0 ),
0
) AS product_price
,
CASE
WHEN MIN (product_modification_price . price ) IS NOT NULL
THEN product_modification_price . currency
WHEN MIN (product_variation_price . price ) IS NOT NULL
THEN product_variation_price . currency
WHEN MIN (product_offer_price . price ) IS NOT NULL
THEN product_offer_price . currency
WHEN MIN (product_price . price ) IS NOT NULL
THEN product_price . currency
ELSE NULL
END AS product_currency
, project_profile_discount . value AS project_discount FROM product INNER JOIN product_categories_product product_event_category ON product_event_category . event = product . event AND product_event_category . category IN ('0190ef25-1d90-79d0-8d42-1c2baf9319c2' ) LEFT JOIN product_trans product_trans ON product_trans . event = product . event AND product_trans . local = 'ru' LEFT JOIN product_info product_info ON product_info . product = product . id LEFT JOIN product_active product_active ON product_active . event = product . event LEFT JOIN product_price product_price ON product_price . event = product . event AND product_price . price > 0 LEFT JOIN product_offer product_offer ON product_offer . event = product . event INNER JOIN users_profile project_profile ON
project_profile . id = '01982ecf-0a6a-79e5-967b-4992d1b836bb' LEFT JOIN product_category category ON category . id = product_event_category . category LEFT JOIN product_category_info category_info ON category_info . event = category . event AND category_info . active IS TRUE LEFT JOIN product_category_trans category_trans ON category_trans . event = category . event AND category_trans . local = 'ru' LEFT JOIN product_category_offers category_offer ON category_offer . id = product_offer . category_offer LEFT JOIN product_offer_price product_offer_price ON product_offer_price . offer = product_offer . id AND product_offer_price . price > 0 LEFT JOIN product_offer_quantity product_offer_quantity ON product_offer_quantity . offer = product_offer . id LEFT JOIN product_variation product_variation ON product_variation . offer = product_offer . id LEFT JOIN product_variation_images product_variation_image ON
product_variation_image . variation = product_variation . id AND
product_variation_image . root = true
LEFT JOIN product_offer_images product_offer_images ON
product_variation_image . name IS NULL AND
product_offer_images . offer = product_offer . id AND
product_offer_images . root = true
LEFT JOIN product_photo product_photo ON
product_offer_images . name IS NULL AND
product_photo . event = product . event AND
product_photo . root = true
LEFT JOIN product_category_variation category_variation ON category_variation . id = product_variation . category_variation LEFT JOIN product_modification product_modification ON product_modification . variation = product_variation . id LEFT JOIN product_invariable product_invariable ON
product_invariable . product = product . id
AND
CASE
WHEN product_offer . const IS NOT NULL THEN product_invariable . offer = product_offer . const
ELSE product_invariable . offer IS NULL
END
AND
CASE
WHEN product_variation . const IS NOT NULL THEN product_invariable . variation = product_variation . const
ELSE product_invariable . variation IS NULL
END
AND
CASE
WHEN product_modification . const IS NOT NULL THEN product_invariable . modification = product_modification . const
ELSE product_invariable . modification IS NULL
END
LEFT JOIN product_variation_price product_variation_price ON product_variation_price . variation = product_variation . id AND product_variation_price . price > 0 LEFT JOIN product_variation_quantity product_variation_quantity ON product_variation_quantity . variation = product_variation . id LEFT JOIN product_category_modification category_modification ON category_modification . id = product_modification . category_modification LEFT JOIN product_modification_price product_modification_price ON product_modification_price . modification = product_modification . id AND product_modification_price . price > 0 LEFT JOIN product_modification_quantity product_modification_quantity ON product_modification_quantity . modification = product_modification . id LEFT JOIN product_modification_images product_modification_image ON
product_modification_image . modification = product_modification . id AND
product_modification_image . root = true
LEFT JOIN user_profile_discount project_profile_discount ON
project_profile_discount . event = project_profile . event WHERE (COALESCE (
NULLIF (product_modification_price . price , 0 ),
NULLIF (product_variation_price . price , 0 ),
NULLIF (product_offer_price . price , 0 ),
NULLIF (product_price . price , 0 ),
0
) > 0 ) AND (
CASE
WHEN product_modification_quantity . quantity IS NOT NULL THEN (product_modification_quantity . quantity - product_modification_quantity . reserve )
WHEN product_variation_quantity . quantity IS NOT NULL THEN (product_variation_quantity . quantity - product_variation_quantity . reserve )
WHEN product_offer_quantity . quantity IS NOT NULL THEN (product_offer_quantity . quantity - product_offer_quantity . reserve )
WHEN product_price . quantity IS NOT NULL THEN (product_price . quantity - product_price . reserve )
ELSE 0
END > 0
) GROUP BY product_price . currency , product_offer_price . currency , product_variation_price . currency , product_modification_price . currency , product . id , product . event , product_trans . name , product_info . url , product_info . sort , product_active . active , product_active . active_from , product_active . active_to , category_offer . card , category_offer . reference , category_variation . card , category_variation . reference , category_modification . card , category_modification . reference , product_modification_image . name , product_variation_image . name , product_offer_images . name , product_photo . name , product_modification_image . ext , product_variation_image . ext , product_offer_images . ext , product_photo . ext , product_modification_image . cdn , product_variation_image . cdn , product_offer_images . cdn , product_photo . cdn , category_info . url , category_trans . name , project_profile_discount . value ORDER BY product_info . sort DESC , SUM (product_modification_quantity . reserve ) DESC , SUM (product_variation_quantity . reserve ) DESC , SUM (product_offer_quantity . reserve ) DESC , SUM (product_price . reserve ) DESC , SUM (product_modification_quantity . quantity ) DESC , SUM (product_variation_quantity . quantity ) DESC , SUM (product_offer_quantity . quantity ) DESC , SUM (product_price . quantity ) DESC LIMIT 6 ;
Copy
18
87.37 ms
SELECT product . id AS product_id , product . event AS product_event , product_trans . name AS product_name , product_info . url AS product_url , product_info . sort AS product_sort , product_active . active as product_active , product_active . active_from as product_active_from , product_active . active_to as product_active_to , category_offer . card AS category_offer_card , category_offer . reference AS product_offer_reference , category_variation . card AS category_variation_card , category_variation . reference as product_variation_reference , category_modification . card AS category_modification_card , category_modification . reference as product_modification_reference , JSON_AGG ( DISTINCT product_invariable . id ) AS invariable ,
CASE
WHEN product_modification_image . name IS NOT NULL THEN
CONCAT ( '/upload/product_modification_images' , '/' , product_modification_image . name )
WHEN product_variation_image . name IS NOT NULL THEN
CONCAT ( '/upload/product_variation_images' , '/' , product_variation_image . name )
WHEN product_offer_images . name IS NOT NULL THEN
CONCAT ( '/upload/product_offer_images' , '/' , product_offer_images . name )
WHEN product_photo . name IS NOT NULL THEN
CONCAT ( '/upload/product_photo' , '/' , product_photo . name )
ELSE NULL
END AS product_image
,
COALESCE (
product_modification_image . ext ,
product_variation_image . ext ,
product_offer_images . ext ,
product_photo . ext
) AS product_image_ext ,
COALESCE (
product_modification_image . cdn ,
product_variation_image . cdn ,
product_offer_images . cdn ,
product_photo . cdn
) AS product_image_cdn , category_info . url AS category_url , category_trans . name AS category_name ,
COALESCE (
NULLIF (MIN (product_modification_price . price ), 0 ),
NULLIF (MIN (product_variation_price . price ), 0 ),
NULLIF (MIN (product_offer_price . price ), 0 ),
NULLIF (MIN (product_price . price ), 0 ),
0
) AS product_price
,
CASE
WHEN MIN (product_modification_price . price ) IS NOT NULL
THEN product_modification_price . currency
WHEN MIN (product_variation_price . price ) IS NOT NULL
THEN product_variation_price . currency
WHEN MIN (product_offer_price . price ) IS NOT NULL
THEN product_offer_price . currency
WHEN MIN (product_price . price ) IS NOT NULL
THEN product_price . currency
ELSE NULL
END AS product_currency
, project_profile_discount . value AS project_discount FROM product INNER JOIN product_categories_product product_event_category ON product_event_category . event = product . event AND product_event_category . category IN (? ) LEFT JOIN product_trans product_trans ON product_trans . event = product . event AND product_trans . local = ? LEFT JOIN product_info product_info ON product_info . product = product . id LEFT JOIN product_active product_active ON product_active . event = product . event LEFT JOIN product_price product_price ON product_price . event = product . event AND product_price . price > 0 LEFT JOIN product_offer product_offer ON product_offer . event = product . event INNER JOIN users_profile project_profile ON
project_profile . id = ? LEFT JOIN product_category category ON category . id = product_event_category . category LEFT JOIN product_category_info category_info ON category_info . event = category . event AND category_info . active IS TRUE LEFT JOIN product_category_trans category_trans ON category_trans . event = category . event AND category_trans . local = ? LEFT JOIN product_category_offers category_offer ON category_offer . id = product_offer . category_offer LEFT JOIN product_offer_price product_offer_price ON product_offer_price . offer = product_offer . id AND product_offer_price . price > 0 LEFT JOIN product_offer_quantity product_offer_quantity ON product_offer_quantity . offer = product_offer . id LEFT JOIN product_variation product_variation ON product_variation . offer = product_offer . id LEFT JOIN product_variation_images product_variation_image ON
product_variation_image . variation = product_variation . id AND
product_variation_image . root = true
LEFT JOIN product_offer_images product_offer_images ON
product_variation_image . name IS NULL AND
product_offer_images . offer = product_offer . id AND
product_offer_images . root = true
LEFT JOIN product_photo product_photo ON
product_offer_images . name IS NULL AND
product_photo . event = product . event AND
product_photo . root = true
LEFT JOIN product_category_variation category_variation ON category_variation . id = product_variation . category_variation LEFT JOIN product_modification product_modification ON product_modification . variation = product_variation . id LEFT JOIN product_invariable product_invariable ON
product_invariable . product = product . id
AND
CASE
WHEN product_offer . const IS NOT NULL THEN product_invariable . offer = product_offer . const
ELSE product_invariable . offer IS NULL
END
AND
CASE
WHEN product_variation . const IS NOT NULL THEN product_invariable . variation = product_variation . const
ELSE product_invariable . variation IS NULL
END
AND
CASE
WHEN product_modification . const IS NOT NULL THEN product_invariable . modification = product_modification . const
ELSE product_invariable . modification IS NULL
END
LEFT JOIN product_variation_price product_variation_price ON product_variation_price . variation = product_variation . id AND product_variation_price . price > 0 LEFT JOIN product_variation_quantity product_variation_quantity ON product_variation_quantity . variation = product_variation . id LEFT JOIN product_category_modification category_modification ON category_modification . id = product_modification . category_modification LEFT JOIN product_modification_price product_modification_price ON product_modification_price . modification = product_modification . id AND product_modification_price . price > 0 LEFT JOIN product_modification_quantity product_modification_quantity ON product_modification_quantity . modification = product_modification . id LEFT JOIN product_modification_images product_modification_image ON
product_modification_image . modification = product_modification . id AND
product_modification_image . root = true
LEFT JOIN user_profile_discount project_profile_discount ON
project_profile_discount . event = project_profile . event WHERE (COALESCE (
NULLIF (product_modification_price . price , 0 ),
NULLIF (product_variation_price . price , 0 ),
NULLIF (product_offer_price . price , 0 ),
NULLIF (product_price . price , 0 ),
0
) > 0 ) AND (
CASE
WHEN product_modification_quantity . quantity IS NOT NULL THEN (product_modification_quantity . quantity - product_modification_quantity . reserve )
WHEN product_variation_quantity . quantity IS NOT NULL THEN (product_variation_quantity . quantity - product_variation_quantity . reserve )
WHEN product_offer_quantity . quantity IS NOT NULL THEN (product_offer_quantity . quantity - product_offer_quantity . reserve )
WHEN product_price . quantity IS NOT NULL THEN (product_price . quantity - product_price . reserve )
ELSE 0
END > 0
) GROUP BY product_price . currency , product_offer_price . currency , product_variation_price . currency , product_modification_price . currency , product . id , product . event , product_trans . name , product_info . url , product_info . sort , product_active . active , product_active . active_from , product_active . active_to , category_offer . card , category_offer . reference , category_variation . card , category_variation . reference , category_modification . card , category_modification . reference , product_modification_image . name , product_variation_image . name , product_offer_images . name , product_photo . name , product_modification_image . ext , product_variation_image . ext , product_offer_images . ext , product_photo . ext , product_modification_image . cdn , product_variation_image . cdn , product_offer_images . cdn , product_photo . cdn , category_info . url , category_trans . name , project_profile_discount . value ORDER BY product_info . sort DESC , SUM (product_modification_quantity . reserve ) DESC , SUM (product_variation_quantity . reserve ) DESC , SUM (product_offer_quantity . reserve ) DESC , SUM (product_price . reserve ) DESC , SUM (product_modification_quantity . quantity ) DESC , SUM (product_variation_quantity . quantity ) DESC , SUM (product_offer_quantity . quantity ) DESC , SUM (product_price . quantity ) DESC LIMIT 6
SELECT
product . id AS product_id ,
product . event AS product_event ,
product_trans . name AS product_name ,
product_info . url AS product_url ,
product_info . sort AS product_sort ,
product_active . active as product_active ,
product_active . active_from as product_active_from ,
product_active . active_to as product_active_to ,
category_offer . card AS category_offer_card ,
category_offer . reference AS product_offer_reference ,
category_variation . card AS category_variation_card ,
category_variation . reference as product_variation_reference ,
category_modification . card AS category_modification_card ,
category_modification . reference as product_modification_reference ,
JSON_AGG (DISTINCT product_invariable . id ) AS invariable ,
CASE WHEN product_modification_image . name IS NOT NULL THEN
CONCAT (
'/upload/product_modification_images' ,
'/' , product_modification_image . name
)
WHEN product_variation_image . name IS NOT NULL THEN
CONCAT (
'/upload/product_variation_images' ,
'/' , product_variation_image . name
)
WHEN product_offer_images . name IS NOT NULL THEN
CONCAT (
'/upload/product_offer_images' ,
'/' , product_offer_images . name
)
WHEN product_photo . name IS NOT NULL THEN
CONCAT (
'/upload/product_photo' , '/' , product_photo . name
)
ELSE
NULL
END AS product_image ,
COALESCE (
product_modification_image . ext ,
product_variation_image . ext , product_offer_images . ext ,
product_photo . ext
) AS product_image_ext ,
COALESCE (
product_modification_image . cdn ,
product_variation_image . cdn , product_offer_images . cdn ,
product_photo . cdn
) AS product_image_cdn ,
category_info . url AS category_url ,
category_trans . name AS category_name ,
COALESCE (
NULLIF (
MIN (
product_modification_price . price
),
0
),
NULLIF (
MIN (product_variation_price . price ),
0
),
NULLIF (
MIN (product_offer_price . price ),
0
),
NULLIF (
MIN (product_price . price ),
0
),
0
) AS product_price ,
CASE WHEN MIN (
product_modification_price . price
) IS NOT NULL THEN
product_modification_price . currency
WHEN MIN (product_variation_price . price ) IS NOT NULL THEN
product_variation_price . currency
WHEN MIN (product_offer_price . price ) IS NOT NULL THEN
product_offer_price . currency
WHEN MIN (product_price . price ) IS NOT NULL THEN
product_price . currency
ELSE
NULL
END AS product_currency ,
project_profile_discount . value AS project_discount
FROM
product
INNER JOIN product_categories_product product_event_category ON product_event_category . event = product . event
AND product_event_category . category IN (? )
LEFT JOIN product_trans product_trans ON product_trans . event = product . event
AND product_trans . local = ?
LEFT JOIN product_info product_info ON product_info . product = product . id
LEFT JOIN product_active product_active ON product_active . event = product . event
LEFT JOIN product_price product_price ON product_price . event = product . event
AND product_price . price > 0
LEFT JOIN product_offer product_offer ON product_offer . event = product . event
INNER JOIN users_profile project_profile ON project_profile . id = ?
LEFT JOIN product_category category ON category . id = product_event_category . category
LEFT JOIN product_category_info category_info ON category_info . event = category . event
AND category_info . active IS TRUE
LEFT JOIN product_category_trans category_trans ON category_trans . event = category . event
AND category_trans . local = ?
LEFT JOIN product_category_offers category_offer ON category_offer . id = product_offer . category_offer
LEFT JOIN product_offer_price product_offer_price ON product_offer_price . offer = product_offer . id
AND product_offer_price . price > 0
LEFT JOIN product_offer_quantity product_offer_quantity ON product_offer_quantity . offer = product_offer . id
LEFT JOIN product_variation product_variation ON product_variation . offer = product_offer . id
LEFT JOIN product_variation_images product_variation_image ON product_variation_image . variation = product_variation . id
AND product_variation_image . root = true
LEFT JOIN product_offer_images product_offer_images ON product_variation_image . name IS NULL
AND product_offer_images . offer = product_offer . id
AND product_offer_images . root = true
LEFT JOIN product_photo product_photo ON product_offer_images . name IS NULL
AND product_photo . event = product . event
AND product_photo . root = true
LEFT JOIN product_category_variation category_variation ON category_variation . id = product_variation . category_variation
LEFT JOIN product_modification product_modification ON product_modification . variation = product_variation . id
LEFT JOIN product_invariable product_invariable ON product_invariable . product = product . id
AND CASE WHEN product_offer . const IS NOT NULL THEN
product_invariable . offer = product_offer . const
ELSE
product_invariable . offer IS NULL
END
AND CASE WHEN product_variation . const IS NOT NULL THEN
product_invariable . variation = product_variation . const
ELSE
product_invariable . variation IS NULL
END
AND CASE WHEN product_modification . const IS NOT NULL THEN
product_invariable . modification = product_modification . const
ELSE
product_invariable . modification IS NULL
END
LEFT JOIN product_variation_price product_variation_price ON product_variation_price . variation = product_variation . id
AND product_variation_price . price > 0
LEFT JOIN product_variation_quantity product_variation_quantity ON product_variation_quantity . variation = product_variation . id
LEFT JOIN product_category_modification category_modification ON category_modification . id = product_modification . category_modification
LEFT JOIN product_modification_price product_modification_price ON product_modification_price . modification = product_modification . id
AND product_modification_price . price > 0
LEFT JOIN product_modification_quantity product_modification_quantity ON product_modification_quantity . modification = product_modification . id
LEFT JOIN product_modification_images product_modification_image ON product_modification_image . modification = product_modification . id
AND product_modification_image . root = true
LEFT JOIN user_profile_discount project_profile_discount ON project_profile_discount . event = project_profile . event
WHERE
(
COALESCE (
NULLIF (
product_modification_price . price ,
0
),
NULLIF (
product_variation_price . price , 0
),
NULLIF (product_offer_price . price , 0 ),
NULLIF (product_price . price , 0 ),
0
) > 0
)
AND (
CASE WHEN product_modification_quantity . quantity IS NOT NULL THEN
(
product_modification_quantity . quantity - product_modification_quantity . reserve
)
WHEN product_variation_quantity . quantity IS NOT NULL THEN
(
product_variation_quantity . quantity - product_variation_quantity . reserve
)
WHEN product_offer_quantity . quantity IS NOT NULL THEN
(
product_offer_quantity . quantity - product_offer_quantity . reserve
)
WHEN product_price . quantity IS NOT NULL THEN
(
product_price . quantity - product_price . reserve
)
ELSE
0
END > 0
)
GROUP BY
product_price . currency ,
product_offer_price . currency ,
product_variation_price . currency ,
product_modification_price . currency ,
product . id ,
product . event ,
product_trans . name ,
product_info . url ,
product_info . sort ,
product_active . active ,
product_active . active_from ,
product_active . active_to ,
category_offer . card ,
category_offer . reference ,
category_variation . card ,
category_variation . reference ,
category_modification . card ,
category_modification . reference ,
product_modification_image . name ,
product_variation_image . name ,
product_offer_images . name ,
product_photo . name ,
product_modification_image . ext ,
product_variation_image . ext ,
product_offer_images . ext ,
product_photo . ext ,
product_modification_image . cdn ,
product_variation_image . cdn ,
product_offer_images . cdn ,
product_photo . cdn ,
category_info . url ,
category_trans . name ,
project_profile_discount . value
ORDER BY
product_info . sort DESC ,
SUM (
product_modification_quantity . reserve
) DESC ,
SUM (
product_variation_quantity . reserve
) DESC ,
SUM (product_offer_quantity . reserve ) DESC ,
SUM (product_price . reserve ) DESC ,
SUM (
product_modification_quantity . quantity
) DESC ,
SUM (
product_variation_quantity . quantity
) DESC ,
SUM (
product_offer_quantity . quantity
) DESC ,
SUM (product_price . quantity ) DESC
LIMIT
6
Copy
SELECT product . id AS product_id , product . event AS product_event , product_trans . name AS product_name , product_info . url AS product_url , product_info . sort AS product_sort , product_active . active as product_active , product_active . active_from as product_active_from , product_active . active_to as product_active_to , category_offer . card AS category_offer_card , category_offer . reference AS product_offer_reference , category_variation . card AS category_variation_card , category_variation . reference as product_variation_reference , category_modification . card AS category_modification_card , category_modification . reference as product_modification_reference , JSON_AGG ( DISTINCT product_invariable . id ) AS invariable ,
CASE
WHEN product_modification_image . name IS NOT NULL THEN
CONCAT ( '/upload/product_modification_images' , '/' , product_modification_image . name )
WHEN product_variation_image . name IS NOT NULL THEN
CONCAT ( '/upload/product_variation_images' , '/' , product_variation_image . name )
WHEN product_offer_images . name IS NOT NULL THEN
CONCAT ( '/upload/product_offer_images' , '/' , product_offer_images . name )
WHEN product_photo . name IS NOT NULL THEN
CONCAT ( '/upload/product_photo' , '/' , product_photo . name )
ELSE NULL
END AS product_image
,
COALESCE (
product_modification_image . ext ,
product_variation_image . ext ,
product_offer_images . ext ,
product_photo . ext
) AS product_image_ext ,
COALESCE (
product_modification_image . cdn ,
product_variation_image . cdn ,
product_offer_images . cdn ,
product_photo . cdn
) AS product_image_cdn , category_info . url AS category_url , category_trans . name AS category_name ,
COALESCE (
NULLIF (MIN (product_modification_price . price ), 0 ),
NULLIF (MIN (product_variation_price . price ), 0 ),
NULLIF (MIN (product_offer_price . price ), 0 ),
NULLIF (MIN (product_price . price ), 0 ),
0
) AS product_price
,
CASE
WHEN MIN (product_modification_price . price ) IS NOT NULL
THEN product_modification_price . currency
WHEN MIN (product_variation_price . price ) IS NOT NULL
THEN product_variation_price . currency
WHEN MIN (product_offer_price . price ) IS NOT NULL
THEN product_offer_price . currency
WHEN MIN (product_price . price ) IS NOT NULL
THEN product_price . currency
ELSE NULL
END AS product_currency
, project_profile_discount . value AS project_discount FROM product INNER JOIN product_categories_product product_event_category ON product_event_category . event = product . event AND product_event_category . category IN ('0190ef2a-66cd-70ea-b793-2eb962175a4c' ) LEFT JOIN product_trans product_trans ON product_trans . event = product . event AND product_trans . local = 'ru' LEFT JOIN product_info product_info ON product_info . product = product . id LEFT JOIN product_active product_active ON product_active . event = product . event LEFT JOIN product_price product_price ON product_price . event = product . event AND product_price . price > 0 LEFT JOIN product_offer product_offer ON product_offer . event = product . event INNER JOIN users_profile project_profile ON
project_profile . id = '01982ecf-0a6a-79e5-967b-4992d1b836bb' LEFT JOIN product_category category ON category . id = product_event_category . category LEFT JOIN product_category_info category_info ON category_info . event = category . event AND category_info . active IS TRUE LEFT JOIN product_category_trans category_trans ON category_trans . event = category . event AND category_trans . local = 'ru' LEFT JOIN product_category_offers category_offer ON category_offer . id = product_offer . category_offer LEFT JOIN product_offer_price product_offer_price ON product_offer_price . offer = product_offer . id AND product_offer_price . price > 0 LEFT JOIN product_offer_quantity product_offer_quantity ON product_offer_quantity . offer = product_offer . id LEFT JOIN product_variation product_variation ON product_variation . offer = product_offer . id LEFT JOIN product_variation_images product_variation_image ON
product_variation_image . variation = product_variation . id AND
product_variation_image . root = true
LEFT JOIN product_offer_images product_offer_images ON
product_variation_image . name IS NULL AND
product_offer_images . offer = product_offer . id AND
product_offer_images . root = true
LEFT JOIN product_photo product_photo ON
product_offer_images . name IS NULL AND
product_photo . event = product . event AND
product_photo . root = true
LEFT JOIN product_category_variation category_variation ON category_variation . id = product_variation . category_variation LEFT JOIN product_modification product_modification ON product_modification . variation = product_variation . id LEFT JOIN product_invariable product_invariable ON
product_invariable . product = product . id
AND
CASE
WHEN product_offer . const IS NOT NULL THEN product_invariable . offer = product_offer . const
ELSE product_invariable . offer IS NULL
END
AND
CASE
WHEN product_variation . const IS NOT NULL THEN product_invariable . variation = product_variation . const
ELSE product_invariable . variation IS NULL
END
AND
CASE
WHEN product_modification . const IS NOT NULL THEN product_invariable . modification = product_modification . const
ELSE product_invariable . modification IS NULL
END
LEFT JOIN product_variation_price product_variation_price ON product_variation_price . variation = product_variation . id AND product_variation_price . price > 0 LEFT JOIN product_variation_quantity product_variation_quantity ON product_variation_quantity . variation = product_variation . id LEFT JOIN product_category_modification category_modification ON category_modification . id = product_modification . category_modification LEFT JOIN product_modification_price product_modification_price ON product_modification_price . modification = product_modification . id AND product_modification_price . price > 0 LEFT JOIN product_modification_quantity product_modification_quantity ON product_modification_quantity . modification = product_modification . id LEFT JOIN product_modification_images product_modification_image ON
product_modification_image . modification = product_modification . id AND
product_modification_image . root = true
LEFT JOIN user_profile_discount project_profile_discount ON
project_profile_discount . event = project_profile . event WHERE (COALESCE (
NULLIF (product_modification_price . price , 0 ),
NULLIF (product_variation_price . price , 0 ),
NULLIF (product_offer_price . price , 0 ),
NULLIF (product_price . price , 0 ),
0
) > 0 ) AND (
CASE
WHEN product_modification_quantity . quantity IS NOT NULL THEN (product_modification_quantity . quantity - product_modification_quantity . reserve )
WHEN product_variation_quantity . quantity IS NOT NULL THEN (product_variation_quantity . quantity - product_variation_quantity . reserve )
WHEN product_offer_quantity . quantity IS NOT NULL THEN (product_offer_quantity . quantity - product_offer_quantity . reserve )
WHEN product_price . quantity IS NOT NULL THEN (product_price . quantity - product_price . reserve )
ELSE 0
END > 0
) GROUP BY product_price . currency , product_offer_price . currency , product_variation_price . currency , product_modification_price . currency , product . id , product . event , product_trans . name , product_info . url , product_info . sort , product_active . active , product_active . active_from , product_active . active_to , category_offer . card , category_offer . reference , category_variation . card , category_variation . reference , category_modification . card , category_modification . reference , product_modification_image . name , product_variation_image . name , product_offer_images . name , product_photo . name , product_modification_image . ext , product_variation_image . ext , product_offer_images . ext , product_photo . ext , product_modification_image . cdn , product_variation_image . cdn , product_offer_images . cdn , product_photo . cdn , category_info . url , category_trans . name , project_profile_discount . value ORDER BY product_info . sort DESC , SUM (product_modification_quantity . reserve ) DESC , SUM (product_variation_quantity . reserve ) DESC , SUM (product_offer_quantity . reserve ) DESC , SUM (product_price . reserve ) DESC , SUM (product_modification_quantity . quantity ) DESC , SUM (product_variation_quantity . quantity ) DESC , SUM (product_offer_quantity . quantity ) DESC , SUM (product_price . quantity ) DESC LIMIT 6 ;
Copy
19
87.51 ms
SELECT product . id AS product_id , product . event AS product_event , product_trans . name AS product_name , product_info . url AS product_url , product_info . sort AS product_sort , product_active . active as product_active , product_active . active_from as product_active_from , product_active . active_to as product_active_to , category_offer . card AS category_offer_card , category_offer . reference AS product_offer_reference , category_variation . card AS category_variation_card , category_variation . reference as product_variation_reference , category_modification . card AS category_modification_card , category_modification . reference as product_modification_reference , JSON_AGG ( DISTINCT product_invariable . id ) AS invariable ,
CASE
WHEN product_modification_image . name IS NOT NULL THEN
CONCAT ( '/upload/product_modification_images' , '/' , product_modification_image . name )
WHEN product_variation_image . name IS NOT NULL THEN
CONCAT ( '/upload/product_variation_images' , '/' , product_variation_image . name )
WHEN product_offer_images . name IS NOT NULL THEN
CONCAT ( '/upload/product_offer_images' , '/' , product_offer_images . name )
WHEN product_photo . name IS NOT NULL THEN
CONCAT ( '/upload/product_photo' , '/' , product_photo . name )
ELSE NULL
END AS product_image
,
COALESCE (
product_modification_image . ext ,
product_variation_image . ext ,
product_offer_images . ext ,
product_photo . ext
) AS product_image_ext ,
COALESCE (
product_modification_image . cdn ,
product_variation_image . cdn ,
product_offer_images . cdn ,
product_photo . cdn
) AS product_image_cdn , category_info . url AS category_url , category_trans . name AS category_name ,
COALESCE (
NULLIF (MIN (product_modification_price . price ), 0 ),
NULLIF (MIN (product_variation_price . price ), 0 ),
NULLIF (MIN (product_offer_price . price ), 0 ),
NULLIF (MIN (product_price . price ), 0 ),
0
) AS product_price
,
CASE
WHEN MIN (product_modification_price . price ) IS NOT NULL
THEN product_modification_price . currency
WHEN MIN (product_variation_price . price ) IS NOT NULL
THEN product_variation_price . currency
WHEN MIN (product_offer_price . price ) IS NOT NULL
THEN product_offer_price . currency
WHEN MIN (product_price . price ) IS NOT NULL
THEN product_price . currency
ELSE NULL
END AS product_currency
, project_profile_discount . value AS project_discount FROM product INNER JOIN product_categories_product product_event_category ON product_event_category . event = product . event AND product_event_category . category IN (? ) LEFT JOIN product_trans product_trans ON product_trans . event = product . event AND product_trans . local = ? LEFT JOIN product_info product_info ON product_info . product = product . id LEFT JOIN product_active product_active ON product_active . event = product . event LEFT JOIN product_price product_price ON product_price . event = product . event AND product_price . price > 0 LEFT JOIN product_offer product_offer ON product_offer . event = product . event INNER JOIN users_profile project_profile ON
project_profile . id = ? LEFT JOIN product_category category ON category . id = product_event_category . category LEFT JOIN product_category_info category_info ON category_info . event = category . event AND category_info . active IS TRUE LEFT JOIN product_category_trans category_trans ON category_trans . event = category . event AND category_trans . local = ? LEFT JOIN product_category_offers category_offer ON category_offer . id = product_offer . category_offer LEFT JOIN product_offer_price product_offer_price ON product_offer_price . offer = product_offer . id AND product_offer_price . price > 0 LEFT JOIN product_offer_quantity product_offer_quantity ON product_offer_quantity . offer = product_offer . id LEFT JOIN product_variation product_variation ON product_variation . offer = product_offer . id LEFT JOIN product_variation_images product_variation_image ON
product_variation_image . variation = product_variation . id AND
product_variation_image . root = true
LEFT JOIN product_offer_images product_offer_images ON
product_variation_image . name IS NULL AND
product_offer_images . offer = product_offer . id AND
product_offer_images . root = true
LEFT JOIN product_photo product_photo ON
product_offer_images . name IS NULL AND
product_photo . event = product . event AND
product_photo . root = true
LEFT JOIN product_category_variation category_variation ON category_variation . id = product_variation . category_variation LEFT JOIN product_modification product_modification ON product_modification . variation = product_variation . id LEFT JOIN product_invariable product_invariable ON
product_invariable . product = product . id
AND
CASE
WHEN product_offer . const IS NOT NULL THEN product_invariable . offer = product_offer . const
ELSE product_invariable . offer IS NULL
END
AND
CASE
WHEN product_variation . const IS NOT NULL THEN product_invariable . variation = product_variation . const
ELSE product_invariable . variation IS NULL
END
AND
CASE
WHEN product_modification . const IS NOT NULL THEN product_invariable . modification = product_modification . const
ELSE product_invariable . modification IS NULL
END
LEFT JOIN product_variation_price product_variation_price ON product_variation_price . variation = product_variation . id AND product_variation_price . price > 0 LEFT JOIN product_variation_quantity product_variation_quantity ON product_variation_quantity . variation = product_variation . id LEFT JOIN product_category_modification category_modification ON category_modification . id = product_modification . category_modification LEFT JOIN product_modification_price product_modification_price ON product_modification_price . modification = product_modification . id AND product_modification_price . price > 0 LEFT JOIN product_modification_quantity product_modification_quantity ON product_modification_quantity . modification = product_modification . id LEFT JOIN product_modification_images product_modification_image ON
product_modification_image . modification = product_modification . id AND
product_modification_image . root = true
LEFT JOIN user_profile_discount project_profile_discount ON
project_profile_discount . event = project_profile . event WHERE (COALESCE (
NULLIF (product_modification_price . price , 0 ),
NULLIF (product_variation_price . price , 0 ),
NULLIF (product_offer_price . price , 0 ),
NULLIF (product_price . price , 0 ),
0
) > 0 ) AND (
CASE
WHEN product_modification_quantity . quantity IS NOT NULL THEN (product_modification_quantity . quantity - product_modification_quantity . reserve )
WHEN product_variation_quantity . quantity IS NOT NULL THEN (product_variation_quantity . quantity - product_variation_quantity . reserve )
WHEN product_offer_quantity . quantity IS NOT NULL THEN (product_offer_quantity . quantity - product_offer_quantity . reserve )
WHEN product_price . quantity IS NOT NULL THEN (product_price . quantity - product_price . reserve )
ELSE 0
END > 0
) GROUP BY product_price . currency , product_offer_price . currency , product_variation_price . currency , product_modification_price . currency , product . id , product . event , product_trans . name , product_info . url , product_info . sort , product_active . active , product_active . active_from , product_active . active_to , category_offer . card , category_offer . reference , category_variation . card , category_variation . reference , category_modification . card , category_modification . reference , product_modification_image . name , product_variation_image . name , product_offer_images . name , product_photo . name , product_modification_image . ext , product_variation_image . ext , product_offer_images . ext , product_photo . ext , product_modification_image . cdn , product_variation_image . cdn , product_offer_images . cdn , product_photo . cdn , category_info . url , category_trans . name , project_profile_discount . value ORDER BY product_info . sort DESC , SUM (product_modification_quantity . reserve ) DESC , SUM (product_variation_quantity . reserve ) DESC , SUM (product_offer_quantity . reserve ) DESC , SUM (product_price . reserve ) DESC , SUM (product_modification_quantity . quantity ) DESC , SUM (product_variation_quantity . quantity ) DESC , SUM (product_offer_quantity . quantity ) DESC , SUM (product_price . quantity ) DESC LIMIT 6
SELECT
product . id AS product_id ,
product . event AS product_event ,
product_trans . name AS product_name ,
product_info . url AS product_url ,
product_info . sort AS product_sort ,
product_active . active as product_active ,
product_active . active_from as product_active_from ,
product_active . active_to as product_active_to ,
category_offer . card AS category_offer_card ,
category_offer . reference AS product_offer_reference ,
category_variation . card AS category_variation_card ,
category_variation . reference as product_variation_reference ,
category_modification . card AS category_modification_card ,
category_modification . reference as product_modification_reference ,
JSON_AGG (DISTINCT product_invariable . id ) AS invariable ,
CASE WHEN product_modification_image . name IS NOT NULL THEN
CONCAT (
'/upload/product_modification_images' ,
'/' , product_modification_image . name
)
WHEN product_variation_image . name IS NOT NULL THEN
CONCAT (
'/upload/product_variation_images' ,
'/' , product_variation_image . name
)
WHEN product_offer_images . name IS NOT NULL THEN
CONCAT (
'/upload/product_offer_images' ,
'/' , product_offer_images . name
)
WHEN product_photo . name IS NOT NULL THEN
CONCAT (
'/upload/product_photo' , '/' , product_photo . name
)
ELSE
NULL
END AS product_image ,
COALESCE (
product_modification_image . ext ,
product_variation_image . ext , product_offer_images . ext ,
product_photo . ext
) AS product_image_ext ,
COALESCE (
product_modification_image . cdn ,
product_variation_image . cdn , product_offer_images . cdn ,
product_photo . cdn
) AS product_image_cdn ,
category_info . url AS category_url ,
category_trans . name AS category_name ,
COALESCE (
NULLIF (
MIN (
product_modification_price . price
),
0
),
NULLIF (
MIN (product_variation_price . price ),
0
),
NULLIF (
MIN (product_offer_price . price ),
0
),
NULLIF (
MIN (product_price . price ),
0
),
0
) AS product_price ,
CASE WHEN MIN (
product_modification_price . price
) IS NOT NULL THEN
product_modification_price . currency
WHEN MIN (product_variation_price . price ) IS NOT NULL THEN
product_variation_price . currency
WHEN MIN (product_offer_price . price ) IS NOT NULL THEN
product_offer_price . currency
WHEN MIN (product_price . price ) IS NOT NULL THEN
product_price . currency
ELSE
NULL
END AS product_currency ,
project_profile_discount . value AS project_discount
FROM
product
INNER JOIN product_categories_product product_event_category ON product_event_category . event = product . event
AND product_event_category . category IN (? )
LEFT JOIN product_trans product_trans ON product_trans . event = product . event
AND product_trans . local = ?
LEFT JOIN product_info product_info ON product_info . product = product . id
LEFT JOIN product_active product_active ON product_active . event = product . event
LEFT JOIN product_price product_price ON product_price . event = product . event
AND product_price . price > 0
LEFT JOIN product_offer product_offer ON product_offer . event = product . event
INNER JOIN users_profile project_profile ON project_profile . id = ?
LEFT JOIN product_category category ON category . id = product_event_category . category
LEFT JOIN product_category_info category_info ON category_info . event = category . event
AND category_info . active IS TRUE
LEFT JOIN product_category_trans category_trans ON category_trans . event = category . event
AND category_trans . local = ?
LEFT JOIN product_category_offers category_offer ON category_offer . id = product_offer . category_offer
LEFT JOIN product_offer_price product_offer_price ON product_offer_price . offer = product_offer . id
AND product_offer_price . price > 0
LEFT JOIN product_offer_quantity product_offer_quantity ON product_offer_quantity . offer = product_offer . id
LEFT JOIN product_variation product_variation ON product_variation . offer = product_offer . id
LEFT JOIN product_variation_images product_variation_image ON product_variation_image . variation = product_variation . id
AND product_variation_image . root = true
LEFT JOIN product_offer_images product_offer_images ON product_variation_image . name IS NULL
AND product_offer_images . offer = product_offer . id
AND product_offer_images . root = true
LEFT JOIN product_photo product_photo ON product_offer_images . name IS NULL
AND product_photo . event = product . event
AND product_photo . root = true
LEFT JOIN product_category_variation category_variation ON category_variation . id = product_variation . category_variation
LEFT JOIN product_modification product_modification ON product_modification . variation = product_variation . id
LEFT JOIN product_invariable product_invariable ON product_invariable . product = product . id
AND CASE WHEN product_offer . const IS NOT NULL THEN
product_invariable . offer = product_offer . const
ELSE
product_invariable . offer IS NULL
END
AND CASE WHEN product_variation . const IS NOT NULL THEN
product_invariable . variation = product_variation . const
ELSE
product_invariable . variation IS NULL
END
AND CASE WHEN product_modification . const IS NOT NULL THEN
product_invariable . modification = product_modification . const
ELSE
product_invariable . modification IS NULL
END
LEFT JOIN product_variation_price product_variation_price ON product_variation_price . variation = product_variation . id
AND product_variation_price . price > 0
LEFT JOIN product_variation_quantity product_variation_quantity ON product_variation_quantity . variation = product_variation . id
LEFT JOIN product_category_modification category_modification ON category_modification . id = product_modification . category_modification
LEFT JOIN product_modification_price product_modification_price ON product_modification_price . modification = product_modification . id
AND product_modification_price . price > 0
LEFT JOIN product_modification_quantity product_modification_quantity ON product_modification_quantity . modification = product_modification . id
LEFT JOIN product_modification_images product_modification_image ON product_modification_image . modification = product_modification . id
AND product_modification_image . root = true
LEFT JOIN user_profile_discount project_profile_discount ON project_profile_discount . event = project_profile . event
WHERE
(
COALESCE (
NULLIF (
product_modification_price . price ,
0
),
NULLIF (
product_variation_price . price , 0
),
NULLIF (product_offer_price . price , 0 ),
NULLIF (product_price . price , 0 ),
0
) > 0
)
AND (
CASE WHEN product_modification_quantity . quantity IS NOT NULL THEN
(
product_modification_quantity . quantity - product_modification_quantity . reserve
)
WHEN product_variation_quantity . quantity IS NOT NULL THEN
(
product_variation_quantity . quantity - product_variation_quantity . reserve
)
WHEN product_offer_quantity . quantity IS NOT NULL THEN
(
product_offer_quantity . quantity - product_offer_quantity . reserve
)
WHEN product_price . quantity IS NOT NULL THEN
(
product_price . quantity - product_price . reserve
)
ELSE
0
END > 0
)
GROUP BY
product_price . currency ,
product_offer_price . currency ,
product_variation_price . currency ,
product_modification_price . currency ,
product . id ,
product . event ,
product_trans . name ,
product_info . url ,
product_info . sort ,
product_active . active ,
product_active . active_from ,
product_active . active_to ,
category_offer . card ,
category_offer . reference ,
category_variation . card ,
category_variation . reference ,
category_modification . card ,
category_modification . reference ,
product_modification_image . name ,
product_variation_image . name ,
product_offer_images . name ,
product_photo . name ,
product_modification_image . ext ,
product_variation_image . ext ,
product_offer_images . ext ,
product_photo . ext ,
product_modification_image . cdn ,
product_variation_image . cdn ,
product_offer_images . cdn ,
product_photo . cdn ,
category_info . url ,
category_trans . name ,
project_profile_discount . value
ORDER BY
product_info . sort DESC ,
SUM (
product_modification_quantity . reserve
) DESC ,
SUM (
product_variation_quantity . reserve
) DESC ,
SUM (product_offer_quantity . reserve ) DESC ,
SUM (product_price . reserve ) DESC ,
SUM (
product_modification_quantity . quantity
) DESC ,
SUM (
product_variation_quantity . quantity
) DESC ,
SUM (
product_offer_quantity . quantity
) DESC ,
SUM (product_price . quantity ) DESC
LIMIT
6
Copy
SELECT product . id AS product_id , product . event AS product_event , product_trans . name AS product_name , product_info . url AS product_url , product_info . sort AS product_sort , product_active . active as product_active , product_active . active_from as product_active_from , product_active . active_to as product_active_to , category_offer . card AS category_offer_card , category_offer . reference AS product_offer_reference , category_variation . card AS category_variation_card , category_variation . reference as product_variation_reference , category_modification . card AS category_modification_card , category_modification . reference as product_modification_reference , JSON_AGG ( DISTINCT product_invariable . id ) AS invariable ,
CASE
WHEN product_modification_image . name IS NOT NULL THEN
CONCAT ( '/upload/product_modification_images' , '/' , product_modification_image . name )
WHEN product_variation_image . name IS NOT NULL THEN
CONCAT ( '/upload/product_variation_images' , '/' , product_variation_image . name )
WHEN product_offer_images . name IS NOT NULL THEN
CONCAT ( '/upload/product_offer_images' , '/' , product_offer_images . name )
WHEN product_photo . name IS NOT NULL THEN
CONCAT ( '/upload/product_photo' , '/' , product_photo . name )
ELSE NULL
END AS product_image
,
COALESCE (
product_modification_image . ext ,
product_variation_image . ext ,
product_offer_images . ext ,
product_photo . ext
) AS product_image_ext ,
COALESCE (
product_modification_image . cdn ,
product_variation_image . cdn ,
product_offer_images . cdn ,
product_photo . cdn
) AS product_image_cdn , category_info . url AS category_url , category_trans . name AS category_name ,
COALESCE (
NULLIF (MIN (product_modification_price . price ), 0 ),
NULLIF (MIN (product_variation_price . price ), 0 ),
NULLIF (MIN (product_offer_price . price ), 0 ),
NULLIF (MIN (product_price . price ), 0 ),
0
) AS product_price
,
CASE
WHEN MIN (product_modification_price . price ) IS NOT NULL
THEN product_modification_price . currency
WHEN MIN (product_variation_price . price ) IS NOT NULL
THEN product_variation_price . currency
WHEN MIN (product_offer_price . price ) IS NOT NULL
THEN product_offer_price . currency
WHEN MIN (product_price . price ) IS NOT NULL
THEN product_price . currency
ELSE NULL
END AS product_currency
, project_profile_discount . value AS project_discount FROM product INNER JOIN product_categories_product product_event_category ON product_event_category . event = product . event AND product_event_category . category IN ('01924385-2099-71c1-a793-c114a808e485' ) LEFT JOIN product_trans product_trans ON product_trans . event = product . event AND product_trans . local = 'ru' LEFT JOIN product_info product_info ON product_info . product = product . id LEFT JOIN product_active product_active ON product_active . event = product . event LEFT JOIN product_price product_price ON product_price . event = product . event AND product_price . price > 0 LEFT JOIN product_offer product_offer ON product_offer . event = product . event INNER JOIN users_profile project_profile ON
project_profile . id = '01982ecf-0a6a-79e5-967b-4992d1b836bb' LEFT JOIN product_category category ON category . id = product_event_category . category LEFT JOIN product_category_info category_info ON category_info . event = category . event AND category_info . active IS TRUE LEFT JOIN product_category_trans category_trans ON category_trans . event = category . event AND category_trans . local = 'ru' LEFT JOIN product_category_offers category_offer ON category_offer . id = product_offer . category_offer LEFT JOIN product_offer_price product_offer_price ON product_offer_price . offer = product_offer . id AND product_offer_price . price > 0 LEFT JOIN product_offer_quantity product_offer_quantity ON product_offer_quantity . offer = product_offer . id LEFT JOIN product_variation product_variation ON product_variation . offer = product_offer . id LEFT JOIN product_variation_images product_variation_image ON
product_variation_image . variation = product_variation . id AND
product_variation_image . root = true
LEFT JOIN product_offer_images product_offer_images ON
product_variation_image . name IS NULL AND
product_offer_images . offer = product_offer . id AND
product_offer_images . root = true
LEFT JOIN product_photo product_photo ON
product_offer_images . name IS NULL AND
product_photo . event = product . event AND
product_photo . root = true
LEFT JOIN product_category_variation category_variation ON category_variation . id = product_variation . category_variation LEFT JOIN product_modification product_modification ON product_modification . variation = product_variation . id LEFT JOIN product_invariable product_invariable ON
product_invariable . product = product . id
AND
CASE
WHEN product_offer . const IS NOT NULL THEN product_invariable . offer = product_offer . const
ELSE product_invariable . offer IS NULL
END
AND
CASE
WHEN product_variation . const IS NOT NULL THEN product_invariable . variation = product_variation . const
ELSE product_invariable . variation IS NULL
END
AND
CASE
WHEN product_modification . const IS NOT NULL THEN product_invariable . modification = product_modification . const
ELSE product_invariable . modification IS NULL
END
LEFT JOIN product_variation_price product_variation_price ON product_variation_price . variation = product_variation . id AND product_variation_price . price > 0 LEFT JOIN product_variation_quantity product_variation_quantity ON product_variation_quantity . variation = product_variation . id LEFT JOIN product_category_modification category_modification ON category_modification . id = product_modification . category_modification LEFT JOIN product_modification_price product_modification_price ON product_modification_price . modification = product_modification . id AND product_modification_price . price > 0 LEFT JOIN product_modification_quantity product_modification_quantity ON product_modification_quantity . modification = product_modification . id LEFT JOIN product_modification_images product_modification_image ON
product_modification_image . modification = product_modification . id AND
product_modification_image . root = true
LEFT JOIN user_profile_discount project_profile_discount ON
project_profile_discount . event = project_profile . event WHERE (COALESCE (
NULLIF (product_modification_price . price , 0 ),
NULLIF (product_variation_price . price , 0 ),
NULLIF (product_offer_price . price , 0 ),
NULLIF (product_price . price , 0 ),
0
) > 0 ) AND (
CASE
WHEN product_modification_quantity . quantity IS NOT NULL THEN (product_modification_quantity . quantity - product_modification_quantity . reserve )
WHEN product_variation_quantity . quantity IS NOT NULL THEN (product_variation_quantity . quantity - product_variation_quantity . reserve )
WHEN product_offer_quantity . quantity IS NOT NULL THEN (product_offer_quantity . quantity - product_offer_quantity . reserve )
WHEN product_price . quantity IS NOT NULL THEN (product_price . quantity - product_price . reserve )
ELSE 0
END > 0
) GROUP BY product_price . currency , product_offer_price . currency , product_variation_price . currency , product_modification_price . currency , product . id , product . event , product_trans . name , product_info . url , product_info . sort , product_active . active , product_active . active_from , product_active . active_to , category_offer . card , category_offer . reference , category_variation . card , category_variation . reference , category_modification . card , category_modification . reference , product_modification_image . name , product_variation_image . name , product_offer_images . name , product_photo . name , product_modification_image . ext , product_variation_image . ext , product_offer_images . ext , product_photo . ext , product_modification_image . cdn , product_variation_image . cdn , product_offer_images . cdn , product_photo . cdn , category_info . url , category_trans . name , project_profile_discount . value ORDER BY product_info . sort DESC , SUM (product_modification_quantity . reserve ) DESC , SUM (product_variation_quantity . reserve ) DESC , SUM (product_offer_quantity . reserve ) DESC , SUM (product_price . reserve ) DESC , SUM (product_modification_quantity . quantity ) DESC , SUM (product_variation_quantity . quantity ) DESC , SUM (product_offer_quantity . quantity ) DESC , SUM (product_price . quantity ) DESC LIMIT 6 ;
Copy
20
0.66 ms
SELECT CURRENT_DATABASE ()
SELECT CURRENT_DATABASE ();
Copy
21
5.23 ms
SELECT quote_ident (table_name ) AS table_name ,
table_schema AS schema_name
FROM information_schema . tables
WHERE table_catalog = ?
AND table_schema NOT LIKE 'pg\_%'
AND table_schema ! = 'information_schema'
AND table_name ! = 'geometry_columns'
AND table_name ! = 'spatial_ref_sys'
AND table_type = 'BASE TABLE'
ORDER BY
quote_ident (table_name )
SELECT quote_ident (table_name ) AS table_name ,
table_schema AS schema_name
FROM information_schema . tables
WHERE table_catalog = 'tires'
AND table_schema NOT LIKE 'pg\_%'
AND table_schema ! = 'information_schema'
AND table_name ! = 'geometry_columns'
AND table_name ! = 'spatial_ref_sys'
AND table_type = 'BASE TABLE'
ORDER BY
quote_ident (table_name );
Copy
22
0.40 ms
SELECT current_schema ()
SELECT current_schema ();
Copy
23
0.31 ms
SELECT CURRENT_DATABASE ()
SELECT CURRENT_DATABASE ();
Copy
24
3.06 ms
SELECT quote_ident (table_name ) AS table_name ,
table_schema AS schema_name
FROM information_schema . tables
WHERE table_catalog = ?
AND table_schema NOT LIKE 'pg\_%'
AND table_schema ! = 'information_schema'
AND table_name ! = 'geometry_columns'
AND table_name ! = 'spatial_ref_sys'
AND table_type = 'BASE TABLE'
ORDER BY
quote_ident (table_name )
SELECT quote_ident (table_name ) AS table_name ,
table_schema AS schema_name
FROM information_schema . tables
WHERE table_catalog = 'tires'
AND table_schema NOT LIKE 'pg\_%'
AND table_schema ! = 'information_schema'
AND table_name ! = 'geometry_columns'
AND table_name ! = 'spatial_ref_sys'
AND table_type = 'BASE TABLE'
ORDER BY
quote_ident (table_name );
Copy
25
12.62 ms
SELECT n . nspname ,
c . relname ,
a . attname ,
t . typname ,
format_type (a . atttypid , a . atttypmod ),
bt . typname ,
format_type (bt . oid , t . typtypmod ),
a . attnotnull ,
a . attidentity ,
( SELECT
CASE
WHEN a . attgenerated = 's' THEN NULL
ELSE pg_get_expr (adbin , adrelid )
END
FROM pg_attrdef
WHERE c . oid = pg_attrdef . adrelid
AND pg_attrdef . adnum = a . attnum ),
dsc . description ,
CASE
WHEN coll . collprovider = 'c'
THEN coll . collcollate
WHEN coll . collprovider = 'd'
THEN NULL
ELSE coll . collname
END
FROM pg_attribute a
JOIN pg_class c
ON c . oid = a . attrelid
JOIN pg_namespace n
ON n . oid = c . relnamespace
JOIN pg_type t
ON t . oid = a . atttypid
LEFT JOIN pg_type bt
ON t . typtype = 'd'
AND bt . oid = t . typbasetype
LEFT JOIN pg_collation coll
ON coll . oid = a . attcollation
LEFT JOIN pg_depend dep
ON dep . objid = c . oid
AND dep . deptype = 'e'
AND dep . classid = (SELECT oid FROM pg_class WHERE relname = 'pg_class' )
LEFT JOIN pg_description dsc
ON dsc . objoid = c . oid AND dsc . objsubid = a . attnum
LEFT JOIN pg_inherits i
ON i . inhrelid = c . oid
LEFT JOIN pg_class p
ON i . inhparent = p . oid
AND p . relkind = 'p'
WHERE n . nspname = ? AND c . relname = ? AND n . nspname NOT LIKE 'pg\_%' AND n . nspname ! = 'information_schema' AND c . relkind IN ('r' , 'p' ) AND c . relname NOT IN ('geometry_columns' , 'spatial_ref_sys' )
AND a . attnum > 0
AND dep . refobjid IS NULL
AND p . oid IS NULL
ORDER BY n . nspname ,
c . relname ,
a . attnum
Parameters :
[
"public "
"doctrine_migration_versions "
]
SELECT n . nspname ,
c . relname ,
a . attname ,
t . typname ,
format_type (a . atttypid , a . atttypmod ),
bt . typname ,
format_type (bt . oid , t . typtypmod ),
a . attnotnull ,
a . attidentity ,
( SELECT
CASE
WHEN a . attgenerated = 's' THEN NULL
ELSE pg_get_expr (adbin , adrelid )
END
FROM pg_attrdef
WHERE c . oid = pg_attrdef . adrelid
AND pg_attrdef . adnum = a . attnum ),
dsc . description ,
CASE
WHEN coll . collprovider = 'c'
THEN coll . collcollate
WHEN coll . collprovider = 'd'
THEN NULL
ELSE coll . collname
END
FROM pg_attribute a
JOIN pg_class c
ON c . oid = a . attrelid
JOIN pg_namespace n
ON n . oid = c . relnamespace
JOIN pg_type t
ON t . oid = a . atttypid
LEFT JOIN pg_type bt
ON t . typtype = 'd'
AND bt . oid = t . typbasetype
LEFT JOIN pg_collation coll
ON coll . oid = a . attcollation
LEFT JOIN pg_depend dep
ON dep . objid = c . oid
AND dep . deptype = 'e'
AND dep . classid = (SELECT oid FROM pg_class WHERE relname = 'pg_class' )
LEFT JOIN pg_description dsc
ON dsc . objoid = c . oid AND dsc . objsubid = a . attnum
LEFT JOIN pg_inherits i
ON i . inhrelid = c . oid
LEFT JOIN pg_class p
ON i . inhparent = p . oid
AND p . relkind = 'p'
WHERE n . nspname = 'public' AND c . relname = 'doctrine_migration_versions' AND n . nspname NOT LIKE 'pg\_%' AND n . nspname ! = 'information_schema' AND c . relkind IN ('r' , 'p' ) AND c . relname NOT IN ('geometry_columns' , 'spatial_ref_sys' )
AND a . attnum > 0
AND dep . refobjid IS NULL
AND p . oid IS NULL
ORDER BY n . nspname ,
c . relname ,
a . attnum ;
Copy
26
1.08 ms
SELECT n . nspname ,
c . relname ,
CASE c . relpersistence WHEN 'u' THEN true ELSE false END ,
obj_description (c . oid , 'pg_class' )
FROM pg_class c
INNER JOIN pg_namespace n
ON n . oid = c . relnamespace
WHERE n . nspname = ? AND c . relname = ? AND n . nspname NOT LIKE 'pg\_%' AND n . nspname ! = 'information_schema' AND c . relkind IN ('r' , 'p' ) AND c . relname NOT IN ('geometry_columns' , 'spatial_ref_sys' )
Parameters :
[
"public "
"doctrine_migration_versions "
]
SELECT n . nspname ,
c . relname ,
CASE c . relpersistence WHEN 'u' THEN true ELSE false END ,
obj_description (c . oid , 'pg_class' )
FROM pg_class c
INNER JOIN pg_namespace n
ON n . oid = c . relnamespace
WHERE n . nspname = 'public' AND c . relname = 'doctrine_migration_versions' AND n . nspname NOT LIKE 'pg\_%' AND n . nspname ! = 'information_schema' AND c . relkind IN ('r' , 'p' ) AND c . relname NOT IN ('geometry_columns' , 'spatial_ref_sys' );
Copy
27
4.17 ms
SELECT n . nspname ,
c . relname ,
ct . conname ,
a . attname
FROM pg_namespace n
INNER JOIN pg_class c
ON c . relnamespace = n . oid
INNER JOIN pg_constraint ct
ON ct . conrelid = c . oid
INNER JOIN pg_index i
ON i . indrelid = c . oid
AND i . indexrelid = ct . conindid
INNER JOIN LATERAL unnest (i . indkey ) WITH ORDINALITY AS keys (attnum , ord )
ON true
INNER JOIN
pg_attribute a
ON a . attrelid = c . oid
AND a . attnum = keys . attnum
WHERE n . nspname = ? AND c . relname = ? AND n . nspname NOT LIKE 'pg\_%' AND n . nspname ! = 'information_schema' AND c . relkind IN ('r' , 'p' ) AND c . relname NOT IN ('geometry_columns' , 'spatial_ref_sys' )
AND ct . contype = 'p'
ORDER BY n . nspname ,
c . relname ,
ct . conname ,
keys . ord
Parameters :
[
"public "
"doctrine_migration_versions "
]
SELECT n . nspname ,
c . relname ,
ct . conname ,
a . attname
FROM pg_namespace n
INNER JOIN pg_class c
ON c . relnamespace = n . oid
INNER JOIN pg_constraint ct
ON ct . conrelid = c . oid
INNER JOIN pg_index i
ON i . indrelid = c . oid
AND i . indexrelid = ct . conindid
INNER JOIN LATERAL unnest (i . indkey ) WITH ORDINALITY AS keys (attnum , ord )
ON true
INNER JOIN
pg_attribute a
ON a . attrelid = c . oid
AND a . attnum = keys . attnum
WHERE n . nspname = 'public' AND c . relname = 'doctrine_migration_versions' AND n . nspname NOT LIKE 'pg\_%' AND n . nspname ! = 'information_schema' AND c . relkind IN ('r' , 'p' ) AND c . relname NOT IN ('geometry_columns' , 'spatial_ref_sys' )
AND ct . contype = 'p'
ORDER BY n . nspname ,
c . relname ,
ct . conname ,
keys . ord ;
Copy
28
2.29 ms
SELECT n . nspname ,
c . relname ,
ic . relname ,
i . indisunique ,
pg_get_expr (indpred , indrelid ),
attname
FROM pg_index i
JOIN pg_class AS c ON c . oid = i . indrelid
JOIN pg_namespace n ON n . oid = c . relnamespace
JOIN pg_class AS ic ON ic . oid = i . indexrelid
JOIN LATERAL unnest (i . indkey ) WITH ORDINALITY AS keys (attnum , ord )
ON TRUE
JOIN pg_attribute a
ON a . attrelid = c . oid
AND a . attnum = keys . attnum
WHERE n . nspname = ? AND c . relname = ? AND n . nspname NOT LIKE 'pg\_%' AND n . nspname ! = 'information_schema' AND c . relkind IN ('r' , 'p' ) AND c . relname NOT IN ('geometry_columns' , 'spatial_ref_sys' )
AND i . indisprimary = false
ORDER BY n . nspname ,
c . relname ,
ic . relname ,
keys . ord
Parameters :
[
"public "
"doctrine_migration_versions "
]
SELECT n . nspname ,
c . relname ,
ic . relname ,
i . indisunique ,
pg_get_expr (indpred , indrelid ),
attname
FROM pg_index i
JOIN pg_class AS c ON c . oid = i . indrelid
JOIN pg_namespace n ON n . oid = c . relnamespace
JOIN pg_class AS ic ON ic . oid = i . indexrelid
JOIN LATERAL unnest (i . indkey ) WITH ORDINALITY AS keys (attnum , ord )
ON TRUE
JOIN pg_attribute a
ON a . attrelid = c . oid
AND a . attnum = keys . attnum
WHERE n . nspname = 'public' AND c . relname = 'doctrine_migration_versions' AND n . nspname NOT LIKE 'pg\_%' AND n . nspname ! = 'information_schema' AND c . relkind IN ('r' , 'p' ) AND c . relname NOT IN ('geometry_columns' , 'spatial_ref_sys' )
AND i . indisprimary = false
ORDER BY n . nspname ,
c . relname ,
ic . relname ,
keys . ord ;
Copy
29
4.89 ms
SELECT pkn . nspname ,
pkc . relname ,
r . conname ,
fkn . nspname ,
fkc . relname ,
r . confupdtype ,
r . confdeltype ,
r . condeferrable ,
r . condeferred ,
pka . attname ,
fka . attname
FROM pg_constraint r
JOIN pg_class fkc
ON fkc . oid = r . confrelid
JOIN pg_namespace fkn
ON fkn . oid = fkc . relnamespace
JOIN unnest (r . confkey ) WITH ORDINALITY AS fk_attnum (attnum , ord )
ON TRUE
JOIN pg_attribute fka
ON fka . attrelid = fkc . oid
AND fka . attnum = fk_attnum . attnum
JOIN pg_class pkc
ON pkc . oid = r . conrelid
JOIN pg_namespace pkn
ON pkn . oid = pkc . relnamespace
JOIN unnest (r . conkey ) WITH ORDINALITY AS pk_attnum (attnum , ord )
ON pk_attnum . ord = fk_attnum . ord
JOIN pg_attribute pka
ON pka . attrelid = pkc . oid
AND pka . attnum = pk_attnum . attnum
WHERE pkn . nspname = ? AND pkc . relname = ? AND pkn . nspname NOT LIKE 'pg\_%' AND pkn . nspname ! = 'information_schema' AND pkc . relkind IN ('r' , 'p' ) AND pkc . relname NOT IN ('geometry_columns' , 'spatial_ref_sys' )
AND r . contype = 'f'
ORDER BY pkn . nspname ,
pkc . relname ,
r . conname
Parameters :
[
"public "
"doctrine_migration_versions "
]
SELECT pkn . nspname ,
pkc . relname ,
r . conname ,
fkn . nspname ,
fkc . relname ,
r . confupdtype ,
r . confdeltype ,
r . condeferrable ,
r . condeferred ,
pka . attname ,
fka . attname
FROM pg_constraint r
JOIN pg_class fkc
ON fkc . oid = r . confrelid
JOIN pg_namespace fkn
ON fkn . oid = fkc . relnamespace
JOIN unnest (r . confkey ) WITH ORDINALITY AS fk_attnum (attnum , ord )
ON TRUE
JOIN pg_attribute fka
ON fka . attrelid = fkc . oid
AND fka . attnum = fk_attnum . attnum
JOIN pg_class pkc
ON pkc . oid = r . conrelid
JOIN pg_namespace pkn
ON pkn . oid = pkc . relnamespace
JOIN unnest (r . conkey ) WITH ORDINALITY AS pk_attnum (attnum , ord )
ON pk_attnum . ord = fk_attnum . ord
JOIN pg_attribute pka
ON pka . attrelid = pkc . oid
AND pka . attnum = pk_attnum . attnum
WHERE pkn . nspname = 'public' AND pkc . relname = 'doctrine_migration_versions' AND pkn . nspname NOT LIKE 'pg\_%' AND pkn . nspname ! = 'information_schema' AND pkc . relkind IN ('r' , 'p' ) AND pkc . relname NOT IN ('geometry_columns' , 'spatial_ref_sys' )
AND r . contype = 'f'
ORDER BY pkn . nspname ,
pkc . relname ,
r . conname ;
Copy
30
0.69 ms
SELECT * FROM doctrine_migration_versions
SELECT * FROM doctrine_migration_versions ;
Copy
31
0.34 ms
SELECT CURRENT_DATABASE ()
SELECT CURRENT_DATABASE ();
Copy