【发布时间】:2022-01-23 06:16:12
【问题描述】:
两次左连接的结果与第二次左连接中的记录重复的次数相同 当存在多个左连接时会出现问题。
如何编辑它以解决问题? 提前致谢。
SELECT
`p`.*,
GROUP_CONCAT(CONCAT(`pi`.`id`, '-', `pi`.`img_path`) SEPARATOR ',') AS `images`,
GROUP_CONCAT(`fp`.`filter_id` SEPARATOR \',\') AS `filter_options`
FROM
`products` AS `p`
LEFT JOIN
`product_images` AS `pi` ON (`pi`.`product_id` = `p`.`id`)
LEFT JOIN
`filters_products` AS `fp` ON (`fp`.`product_id` = `p`.`id`)
WHERE
`p`.`id` = ?
GROUP BY
`p`.`id`
-
product_images
表中是否有重复 ID? -
product_id 位于两个表的每一行,以了解哪个产品有问题
-
我是说它们是重复的吗?
-
你不能合法地选择
products
中的所有列,只能按id
分组,如果你只选择p.Id
会发生什么 -
Edit 问题并提供 minimal reproducible example ,即涉及的表或其他对象的
CREATE
语句(粘贴 文本 ,不要使用图像,不要链接到外部站点),INSERT
用于示例数据 (dito) 的语句以及带有表格文本格式的示例数据的所需结果。