将三个查询的结果放入一个表中

时间:2016-05-04 07:17:55

标签: mysql sql

情况如下,

我有一个带有下拉列表的界面(全部,类别,类别类型,产品)和搜索按钮。每个部分有三个数据库表作为CATEGORY,CATEGORYTYPE和PRODUCT 当用户选择All选项搜索时,我将从所有三个表中获取结果并显示在HTML表格上。

要进行分页,我想从所有表中获取由set设置的结果。

以下是我正在使用的三个查询:

SELECT CATNAME,CATDESC,CATSTATUS FROM CATEGORY WHERE CATNAME like %a%

SELECT CATTYPENAME,CATTYPEDESC,CATTYPESTATUS FROM CATEGORYTYPE WHERE CATTYPENAME like %a%

SELECT PRODUCTNAME,PRODUCTDESC,PRODUCTSTATUS FROM PRODUCT WHERE PRODUCTNAME like %a%

从所有表中我只获取同一组列我想要组合三个查询。我希望我的问题是可以理解的。这不是关于加入三个表。我希望所有三个查询的结果作为一个集合或记录并对它们进行分页。

预先感谢任何建议,请询问问题是否不明确。

该应用程序基于JAVA EE。使用的Struts和DB是MySQL。

1 个答案:

答案 0 :(得分:1)

使用视图你可以做你想要的。 首先,你必须改变标题相同的列。喜欢

SELECT NAME,DESCRIPTION,STATUS FROM CATEGORY WHERE NAME like %a%
SELECT NAME,DESCRIPTION,STATUS FROM CATEGORYTYPE WHERE NAME like %a%
SELECT NAME,DESCRIPTION,STATUS FROM PRODUCT WHERE NAME like %a% 

然后你可以像这样创建视图

CREATE VIEW V AS
SELECT *
FROM ((CATEGORY NATURAL FULL OUTER JOIN CATEGORYTYPE)
    NATURAL FULL OUTER JOIN PRODUCT);

<强> P.S。如果您无法更改列标题,则必须根据表格的列

更改视图