Запрос SQL для выборки всех товаров и их урлов:
SELECT pd.product_id, pd.language_id, pd.name, su.keyword
FROM oc_product_description pd LEFT JOIN oc_seo_url su on(CONCAT('product_id=', pd.product_id) = su.query)
ORDER BY `pd`.`language_id` ASC
В запросе используется связка таблиц через JOIN, и самое интересное в условии связки on.
Поскольку в таблице seo_url нет прямого указания на ID товара (product_id), в этой таблице находятся все урлы, и для товаров и для категорий и для информационных страниц. Чтоб понять какой урл к чему относится, используется поле запроса query, в котором указано:
- для товаров product_id=____
- для категорий category_id=____
- для инфоблоков information_id=___
- для брендов manufacturer_id=___
По этому в условие нельзя просто поставить «su.product_id = pd.product_id»

