another example with variants
SELECT m.name AS manufacturer, p.id_product, pl.name, GROUP_CONCAT(DISTINCT(al.name) SEPARATOR ", ") AS combinations,
GROUP_CONCAT(DISTINCT(cl.name) SEPARATOR ",") AS categories, p.price, pa.price, p.id_tax_rules_group, p.wholesale_price,
p.reference, p.supplier_reference, p.id_supplier, p.id_manufacturer, p.upc, p.ecotax, p.weight, s.quantity,
pl.description_short, pl.description, pl.meta_title, pl.meta_keywords, pl.meta_description, pl.link_rewrite,
pl.available_now, pl.available_later, p.available_for_order, p.date_add, p.show_price, p.online_only, p.condition,
p.id_shop_default
FROM tb_product p
LEFT JOIN tb_product_lang pl ON (p.id_product = pl.id_product)
LEFT JOIN tb_manufacturer m ON (p.id_manufacturer = m.id_manufacturer)
LEFT JOIN tb_category_product cp ON (p.id_product = cp.id_product)
LEFT JOIN tb_category_lang cl ON (cp.id_category = cl.id_category)
LEFT JOIN tb_category c ON (cp.id_category = c.id_category)
LEFT JOIN tb_stock_available s ON (p.id_product = s.id_product)
LEFT JOIN tb_product_tag pt ON (p.id_product = pt.id_product)
LEFT JOIN tb_product_attribute pa ON (p.id_product = pa.id_product)
LEFT JOIN tb_product_attribute_combination pac ON (pac.id_product_attribute = pa.id_product_attribute)
LEFT JOIN tb_attribute_lang al ON (al.id_attribute = pac.id_attribute)
WHERE pl.id_lang = 1
AND cl.id_lang = 1
AND p.id_shop_default = 1
AND c.id_shop_default = 1
GROUP BY pac.id_product_attribute