我有下面的代码已经非常完美到现在为止:MySQL LEFT JOIN数组,我如何返回多行?
$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?。感谢所有帮助。
谢谢你菲利普。在不久的将来,我将不得不将这些关系存储在单独的表格中,因为我的数据库正在增加更多的相互关系。尽管我现在使用了'GROUP_CONCAT()'和'FIND_IN_SET()',它在短期内做了诡计。 –
好的下次,当你在开始使用它的时候,你在php中创建数据库时考虑模型。这将为您节省大量时间。 –