您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

php mySQL组concat和group by

php mySQL组concat和group by

使用外部联接,以便即使在table2中不存在匹配记录时也可以获取行。

更新:现在您已经显示查询

看到您的查询非常奇怪,因为一方面您似乎是一个初学者,另一方面您使用的是上个世纪讲授的联接语法,并且这种联接语法已经过时了。

因此,您的查询最好如下所示:

SELECT 
  c.*, 
  p.*, 
  d.*,
  f.*,
  GROUP_CONCAT(DISTINCT e.features_title SEPARATOR '<br>') AS car_features 
FROM bsi_car_master c
INNER JOIN bsi_car_type p ON p.id = c.car_type_id
INNER JOIN bsi_car_vendor d ON d.id = c.car_vendor_id
LEFT JOIN bsi_selected_features f ON f.car_id = c.car_id
LEFT JOIN bsi_car_features e ON e.id = f.features_id
GROUP BY c.car_id

p和d是内部联接的,即p和d必须匹配,否则不会选择c记录。但是f是外部联接的,因此即使f中没有针对该c的记录(那么该记录中的所有f列都为空),您也将得到c(以及p和d)。至于选择e,我们还必须对此进行外部联接,因为同样,如果没有匹配项,我们仍然希望记录c具有p和d。

我换'car_features'car_features的方式。单引号用于字符串文字。双引号用于名称,但此处不需要

php 2022/1/1 18:49:29 有319人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶