【问题标题】:Sql query group_concat with join带有连接的 Sql 查询 group_concat
【发布时间】:2016-09-05 00:01:11
【问题描述】:

我正在尝试在 Int = Json 的基础上用一个查询连接三个表 问题是,由于 group_concat,查询只显示一条记录而忽略另一条记录

SELECT tour_package.id, tour_package.description AS description,
       tour_package.NAME AS name,
       Group_concat(DISTINCT(destination_continent.NAME)) AS continent_name,
       Group_concat(DISTINCT(travel_style.NAME)) AS travel_style_name,
       tour_package.img_path_thumb AS img_path_thumb
FROM tour_package
LEFT JOIN destination_continent 
    ON Find_in_set(destination_continent.id, Replace( Replace( Replace( tour_package.continent_id, '\[', '' ) , '\]', '' ) , '"', '' ) )
LEFT JOIN travel_style
    ON Find_in_set( travel_style.id, Replace( Replace( Replace( tour_package.travel_style_id, '\[', '' ) , '\]', '' ) , '"', '' ) )
WHERE `tour_package`.`DELETE` = 0 
       && `destination_continent`.`DELETE` = 0
       && `travel_style`.`DELETE` = 0

我的sql不太好,我知道这不是正确的方法,使用外键是正确的解决方案,任何方式我都将其视为学习。

如果你有任何想法请分享一下

【问题讨论】:

  • 我无法在手机上读取这些微小的图像,因此无法提供有关您加入的任何见解。

标签: mysql sql join concat


【解决方案1】:

除了您使用的低效联接之外,添加一个 group by 子句,例如 this

 GROUP BY
    tour_package.id
  , tour_package.description
  , tour_package.NAME
  , tour_package.img_path_thumb

这个子句将定义每一行的唯一属性。

【讨论】:

    猜你喜欢
    • 2014-12-01
    • 2018-09-15
    • 2017-08-17
    • 2021-12-28
    • 2016-07-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多