Только в запросе sql (используется в скрипте php) мне нужно использовать значение столбца в запросе для оптимизации скорости, но это не работает.
У меня есть mutiple таблицы, поэтому я использую JOIN
Если я это сделаю:
LEFT JOIN `gestdetails` gd ON gd.id IN (205467,205468,205469)
Я хорошо работаю! Но если я использую значение столбца (g c .details = 205467,205468,205469):
LEFT JOIN `gestdetails` gd ON gd.id IN (gc.details)
Это не работает, используется только первое значение «205467».
Я пытаюсь сделать это на go быстрее с помощью запроса: если я делаю classi c JOIN по id = id, это тоже работает, но это слишком долго ...
LEFT JOIN `gestdetails` gd ON (gd.idcommande = gc.id)
gestcommandes = таблица уникальных заказов
gestdetails = таблица нескольких продуктов, связанных с idcommande из gestcommandes
Вот полный запрос:
SELECT
gc.*,
count(gd.idcommande),
GROUP_CONCAT(CONCAT(gd.id,"@",gd.idcommande,"@",gd.ref,"@",gd.poids,"@",gd.numcolis,"@",gd.designation,"@",gd.prix) SEPARATOR "|"),
ad.*
FROM
`gestcommandes` gc
LEFT JOIN `gestdetails` gd ON gd.id IN (gc.details)
LEFT JOIN `adresses` ad ON ad.id_commande = gc.id
WHERE
`mp` LIKE '%-eb' AND (`statut` = 5 OR `statut` = 6) AND `date_expe` >= '2020-04-07 00:00:00' AND `date_expe` <= '2020-04-07 23:59:59'
AND
ad.is_delivery = 1
GROUP BY
gc.id
Выполнение этого запроса, он использует только первое число в столбце g c .details (т. е. «205467» из «205467,205468,205469» и, конечно, у меня есть предупреждения:
Предупреждение: # 1292 усечено неверно Значение INTEGER: '205467,205468,205469'
g c .details может насчитывать от 1 до 100 чисел ...
Я пробовал так много вещей, я не удается это сделать, так что если кто-нибудь может мне помочь (без создания процедуры) ... спасибо!
ps: часть "GROUP_CONCAT" работает хорошо ... если Мне удалось получить более 1 результата для деталей ...