donglin7979 2019-01-31 09:38
浏览 509

我该如何解决这个sql语法错误? near(pl.name,'',CASE WHEN pal.name不为null THEN GROUP_CONCAT(DISTINCT(pal.nam')

Apparently,I have a syntax error that I don't get, could you help me?

SELECT p.id_product, pa.ean13,pa.upc,p.active, p.isBike, p.isDirect, p.weight,p.height, p.width, p.depth, pa.reference, pl.description_short, pa.upc, p.price, pai.id_image CONCAT(pl.name, \' \', CASE WHEN pal.name is not null THEN GROUP_CONCAT(DISTINCT(pal.name) SEPARATOR ", ") ELSE "" END) as name
        FROM ps_product p
        LEFT JOIN ps_product_lang pl ON (p.id_product = pl.id_product)
        LEFT JOIN ps_product_attribute pa ON (p.id_product = pa.id_product)
        LEFT JOIN ps_product_attribute_combination pac ON (pac.id_product_attribute = pa.id_product_attribute)
        LEFT JOIN ps_attribute_lang pal ON (pal.id_attribute = pac.id_attribute)
        LEFT JOIN ps_stock_available s ON (p.id_product = s.id_product)
        WHERE pl.id_lang = 1
        AND p.id_shop_default = 1
        AND pl.name LIKE "%PRODUCT NAME%"
        GROUP BY pac.id_product_attribute
        ORDER BY pl.name
        LIMIT 60'
  • 写回答

1条回答 默认 最新

  • dounabi6295 2019-03-26 00:25
    关注

    Besides a missing comma in the SELECT statement, you were also missing a LEFT JOIN on the ps_product_attribute_image table, here's the correct SQL query:

    SELECT p.id_product, pa.ean13, pa.upc, p.active, p.isBike, p.isDirect, p.weight, p.height, p.width, p.depth, pa.reference, pl.description_short, pa.upc, p.price, pai.id_image,
    CONCAT(pl.name, ' ', CASE WHEN pal.name is not null THEN GROUP_CONCAT(DISTINCT(pal.name) SEPARATOR ', ') ELSE '' END) as name
    FROM ps_product p
    LEFT JOIN ps_product_lang pl ON (p.id_product = pl.id_product)
    LEFT JOIN ps_product_attribute pa ON (p.id_product = pa.id_product)
    LEFT JOIN ps_product_attribute_combination pac ON (pac.id_product_attribute = pa.id_product_attribute)
    LEFT JOIN ps_product_attribute_image pai ON (pai.id_product_attribute = pa.id_product_attribute)
    LEFT JOIN ps_attribute_lang pal ON (pal.id_attribute = pac.id_attribute)
    LEFT JOIN ps_stock_available s ON (p.id_product = s.id_product)
    WHERE pl.id_lang = 1
    AND p.id_shop_default = 1
    AND pl.name LIKE '%PRODUCT NAME%'
    GROUP BY pac.id_product_attribute
    ORDER BY pl.name
    LIMIT 60
    
    评论

报告相同问题?

悬赏问题

  • ¥15 基于单片机数字电压表电路组成及框图
  • ¥100 任意维数的K均值聚类
  • ¥15 stamps做sbas-insar,时序沉降图怎么画
  • ¥15 unity第一人称射击小游戏,有demo,在原脚本的基础上进行修改以达到要求
  • ¥15 买了个传感器,根据商家发的代码和步骤使用但是代码报错了不会改,有没有人可以看看
  • ¥15 关于#Java#的问题,如何解决?
  • ¥15 加热介质是液体,换热器壳侧导热系数和总的导热系数怎么算
  • ¥100 嵌入式系统基于PIC16F882和热敏电阻的数字温度计
  • ¥15 cmd cl 0x000007b
  • ¥20 BAPI_PR_CHANGE how to add account assignment information for service line