我试图在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中不是很好,我知道这不是正确的方法,使用外键是正确的解决方案,无论如何我将这作为一种学习。
如果您有任何想法,任何一个PLZ分享
答案 0 :(得分:0)
除了您使用的低效连接之外,添加group by子句,例如
GROUP BY
tour_package.id
, tour_package.description
, tour_package.NAME
, tour_package.img_path_thumb
此c lause将定义每行的唯一属性。