情况是这样的,
我有一个带有下拉列表(All,Category,Category type,Product)和搜索按钮的界面。每个部分有三个数据库表,分别是CATEGORY、CATEGORYTYPE和PRODUCT
当用户选择All选项搜索时,我将从所有三个表中获取结果并显示在HTML表中。
要进行分页,我要从所有表中按集合获取结果。
下面是我使用的三个查询:

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。

最佳答案

使用视图你可以做你想做的事。
在最开始你必须改变列标题一样。喜欢

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);

备注:如果不能更改列标题,则必须根据该表的列更改视图

关于mysql - 将三个查询的结果汇总到一个表中,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37020939/

10-13 06:45