我在查询Joomla K2文章管理器数据库表时遇到问题。我希望能够选择与各自类别相关联的所有项目。我的大部分查询完成如下:
$query->clear()
->select('i.id, i.title as name, c.name as cat, i.published')
->from('#__k2_items AS i')
->join('LEFT', '#__k2_categories AS c ON c.id = i.catid')
->where('i.published > 0')
->order('i.title, i.ordering, i.id');
这给了我想要的东西,除了它只选择与项目相关的FIRST类别。我相信这是因为在k2_items
表中,catid
列的类型为varchar
,并且以逗号分隔。
e.g
所以说id为1的k2_item的catid
值为123,124,125
,上面的查询只会显示123
的结果。我需要它来显示123
,124
和125
的行。
任何帮助都会很棒。 感谢
答案 0 :(得分:2)
SELECT i.id
, i.title name
, c.name cat
FROM k2_items i
LEFT
JOIN k2_categories c
ON FIND_IN_SET(c.id,i.catid)>0;
ID NAME CAT
1 item 1 Category 1
1 item 1 Category 2
2 item 2 Category 1
2 item 2 Category 2
2 item 2 Category 3
3 item 3 Category 2
3 item 3 Category 3