Привет, можно ли оптимизировать запрос SELECT ниже? Сам запрос работает, но когда мы запрашиваем большие данные, мы сталкиваемся с сообщением в php, которое гласит: «Превышено максимальное время выполнения 30 секунд». Я уменьшил столбцы в запросе до Topping3
, но запрашиваю до Topping15
столбца.
SELECT
itemID,
itemName,
Topping1,
(SELECT DISTINCT Description FROM items WHERE PLU = a.Topping1 AND ClientID = 1679) AS Top1_desc,
Topping2,
(SELECT DISTINCT Description FROM items WHERE PLU = a.Topping2 AND ClientID = 1679) AS Top2_desc,
Topping3,
(SELECT DISTINCT Description FROM items WHERE PLU = a.Topping2 AND ClientID = 1679) AS Top3_desc,
FROM
items a
WHERE
...
Текущие данные в items
таблице
--------------------------------------------------------------------
| itemID | itemName | Description | Topping1 | Topping2 | Topping3 |
--------------------------------------------------------------------
| 1 | HAM1 | Hamburger | ONI1 | TOMO1 | |
--------------------------------------------------------------------
| 2 | ONI1 | Onion | | | |
--------------------------------------------------------------------
| 3 | TOMO1 | Tomato | | | |
--------------------------------------------------------------------
, и это это ожидаемый результат
--------------------------------------------------------------------------------------------------------
| itemID | itemName | Description | Topping1 | Top1_desc | Topping2 | Top2_desc | Topping3 | Top3_desc |
--------------------------------------------------------------------------------------------------------
| 1 | HAM1 | Hamburger | ONI1 | Onion | TOMO1 | Tomato | | |
--------------------------------------------------------------------------------------------------------
| 2 | ONI1 | Onion | | | | | | |
--------------------------------------------------------------------------------------------------------
| 3 | TOMO1 | Tomato | | | | | | |
--------------------------------------------------------------------------------------------------------