2016-05-04 178 views
1

這裏是情況,將三個查詢結果合併到一個表中

我有一個下拉式菜單(All,Category,Category type,Product)和搜索按鈕。每個部分有三個數據庫表作爲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。

+0

您可以在MySQL中創建一個使用聯合來合併三個表中的數據的視圖。如果我正確理解這個問題。 – esrange

+0

@esranga:你是指在我輸入數據到這些表的時候?或者在那個時候我會去取這個東西? – Bhugy

+0

您在用戶選擇「全部」時使用該視圖來獲取數據。 – esrange

回答

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

附:創建視圖如果無法更改列標題,則必須根據該表的列更改視圖

相關問題