Как использовать столбец как часть запроса mysql? - PullRequest
0 голосов
/ 09 апреля 2020

Только в запросе 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 результата для деталей ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...