使用连接查询的结果

时间:2013-12-29 19:46:00

标签: php mysql sql

我有两个表资源和类别。我做了一个连接查询并得到了结果。但我不知道如何解决它。下面是输出结果数组。

array (size=4)
0 => 
   array (size=5)
  'resourceID' => string '24' (length=2)
  'resourceName' => string 'Tafe Resources' (length=14)
  'categoryID' => string '3' (length=1)
  'categoryName' => string 'Accounting' (length=10)
  'subcategoryID' => string '0' (length=1)
1 => 
array (size=5)
  'resourceID' => string '24' (length=2)
  'resourceName' => string 'Tafe Resources' (length=14)
  'categoryID' => string '4' (length=1)
  'categoryName' => string 'Adult Tertiary' (length=14)
  'subcategoryID' => string '0' (length=1)
2 => 
array (size=5)
  'resourceID' => string '26' (length=2)
  'resourceName' => string 'College Resources' (length=17)
  'categoryID' => string '7' (length=1)
  'categoryName' => string 'Automotive' (length=10)
  'subcategoryID' => string '0' (length=1)
3 => 
array (size=5)
  'resourceID' => string '26' (length=2)
  'resourceName' => string 'College Resources' (length=17)
  'categoryID' => string '8' (length=1)
  'categoryName' => string 'Busniess & Management' (length=21)
  'subcategoryID' => string '0' (length=1)

这是我的查询

$this->db->select()->from('resources');
$this->db->join('categories','resources.resourceID = categories.resourceID');

如果是来自单个表,我将使用for-each循环并获取数据。 我希望合并重复的列。 我想显示一个表,其中resourceID和resourceName是唯一的。

1 个答案:

答案 0 :(得分:0)

您希望表格如何独特?您可以使用GROUP BY但是您将丢失任何重复的resourceID和resourceName的类别信息。

编辑:您可以使用带有GROUP_CONCAT的JOIN作为子查询,但这会限制您为concat操作设置的最大长度。

我认为最好的解决方案只是遍历数据并设置数据以确保resourceID和resourceName的行是唯一的。