在sql查询中存储数组

时间:2011-03-16 18:28:16

标签: sql

我的问题标题可能没有真正描述我的问题,对不起。我正在进行数据库模块。因此,我的SQL查询必须复杂,并且能够在单个查询

中进行

我有两个表格category

  • catid int
  • catname varchar

另一张表是product

  • productid int
  • catid references category(catid)
  • 产品名

现在我想做一个select语句,选择catname +该cat下的产品数组,是否可以在单个查询中执行此操作,如

SELECT a.catname,(b.productname bla bla in an array)
from category a, product b WHERE a.catid=b.catid

我不知道这是否可行,如果是,请帮助我

3 个答案:

答案 0 :(得分:1)

MySQL - 使用GROUP_CONCAT

SELECT a.catname, group_concat(b.productname) productnames
from category a
inner join product b on a.catid=b.catid
group by a.catname

答案 1 :(得分:0)

查找Inner Join关键字,

http://www.w3schools.com/sql/sql_join_inner.asp

这应该是你需要的

SELECT column_name(s)
FROM table_name1
INNER JOIN table_name2
ON table_name1.column_name=table_name2.column_name

答案 2 :(得分:0)

这取决于您的数据库平台以及您在哪里使用此查询的结果。表列可以使用Oracle SQL以及XML对象等创建,但它取决于您如何在另一端使用数据。

如果您使用编程语言处理它,JOIN方法可能是最好和最简单的方法,您可以在程序中以编程方式加载数据结构。