colums = "p.*, l.address as address, l.st-6ren">
gpt4 book ai didi

MySQL LEFT JOIN 数组,如何返回多行?

转载 作者:行者123 更新时间:2023-11-28 23:28:18 25 4
gpt4 key购买 nike

我有以下代码,到目前为止运行良好:

$db->table = "horse_products as p";
$db->colums = "p.*, l.address as address, l.storename as supplier_name, c.title as cat_title, c.id_parent as id_parent";
$db->join = "LEFT JOIN locations as l ON l.id = p.id_location"
." LEFT JOIN categories as c ON c.id = p.id_category WHERE c.id_parent = 8";
$db->orderBy = "p.id_location ASC, p.id_product ASC";
$items = $db->Select();

以前 p.id_category 是一个整数,因为“类别”表中只允许一个类别与产品相关联。然而今天我决定让 p.id_category 成为一个逗号分隔的数组。这样做的缺点是,当我尝试回显 $item['cat_title'] 时,我只得到 p.id_category< 中的第一个 c.title/ 数组。我想获取 p.id_category 中所有类别的标题。有人能帮我一下吗?我希望我已经让自己明白了,作为一个 MySQL 新手,即使让我的 LEFT JOIN 工作也是一个挑战:-)

编辑:

今天早上坐下来寻找解决方案,并在以下问题的答案中找到了它:MySQL: How to fetch data with left-join if column contains multiple ids? .感谢所有帮助。

最佳答案

坏主意,因为 id_category 应该是唯一的整数值。如果你想拥有 m:n 关系,你需要添加另一个表,其中至少有两个来自你想要关系的表的主外键。因此,在您的情况下,您将使用主键 id_product 和 id_category 创建表 title_to_categories。 Id_product 将等于 p.id,id_category 等于 c.id。

关于MySQL LEFT JOIN 数组,如何返回多行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38406180/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com