这只是我的第二个查询,我想知道,有没有机会得到我需要的东西。
我正在与Prestashop合作,我想导出有关该产品的数据。
选择“GROUP_CONCAT(DISTINCT ac.id_product_2)”我得到了产品(我需要的)ID,但我希望根据这些ID获得产品参考。
我想知道,根据这些ID获取产品参考是否有任何变化?
我的查询是:
SELECT p.id_product, pl.name, p.reference, p.mcompleted,pl.description_short, pl.meta_title,
pl.link_rewrite, GROUP_CONCAT(DISTINCT ac.id_product_2)
FROM ps_product p
LEFT JOIN ps_product_lang pl ON (p.id_product = pl.id_product)
LEFT JOIN ps_stock_available s ON (p.id_product = s.id_product)
LEFT JOIN ps_accessory ac ON (ac.id_product_1 = p.id_product)
WHERE pl.id_lang = 2
AND p.active = 1
AND s.quantity > 0
AND p.id_product > 35000
AND p.mcompleted = 1
GROUP BY p.id_product
正确的知道我得到的数据是这样的:
id_product reference GROUP_CONCAT(DISTINCT ac.id_product_2)
35026 21-176F 35026,35027
35027 55-FFFF 35027,35028
35028 66-FFFF 35026,35028
But I would like to get something like this:
id_product reference GROUP_CONCAT(DISTINCT ac.id_product_2)
35026 21-176F 21-176F,55-FFFF
35027 55-FFFF 55-FFFF,66-FFFF
35028 66-FFFF 21-176F,66-FFFF
已经在互联网上花了6个多小时,希望得到你的帮助:)
答案 0 :(得分:0)
假设ac.id_product_2也链接到ps_product表,那么你可以简单地进行另一次连接并连接引用而不是id。
SELECT p.id_product, pl.name, p.reference, p.mcompleted,pl.description_short, pl.meta_title,
pl.link_rewrite, GROUP_CONCAT(DISTINCT p2.reference)
FROM ps_product p
LEFT JOIN ps_product_lang pl ON (p.id_product = pl.id_product)
LEFT JOIN ps_stock_available s ON (p.id_product = s.id_product)
LEFT JOIN ps_accessory ac ON (ac.id_product_1 = p.id_product)
LEFT JOIN ps_product p2 on (p2.id_product = ac.id_product_2)
WHERE pl.id_lang = 2
AND p.active = 1
AND s.quantity > 0
AND p.id_product > 35000
AND p.mcompleted = 1
GROUP BY p.id_product