2016-05-13 187 views
1

我有2個查詢返回2個結果集。 如何組合這兩個查詢來獲得單個結果?Mysql - 組合2個SQL查詢

首先查詢:

SELECT * 
FROM Base base 
INNER JOIN Child child ON child.base_id = base.id 
where base.`status` = "active" and base.application = "template"; 

第二個查詢:

SELECT * 
FROM Base base 
WHERE base.`status` = "active" and base.application = "template" and base.role = "public" ; 

請幫助。

+0

你想要一個單一的結果,或一個單一的結果集? – piotrgajow

+0

單個結果集 –

回答

1

你可以嘗試使用UNION

SELECT col1, col2, col3, col4.... 
FROM Base base 
INNER JOIN Child child ON child.base_id = base.id 
where base.`status` = "active" and base.application = "template" 

UNION 

SELECT col1, col2, col3, col4.... 
FROM Base base 
WHERE base.`status` = "active" and base.application = "template" and base.role = "public" ; 

請注意,如果你想有來自兩個查詢重複的元素,那麼你可以使用UNION ALL

另外請確保在使用UNION時查詢結果的列數應該相同。

+0

感謝您的支持。現在我需要將其轉換爲php。非常感謝。 –

0

試試這個:

SELECT * 
FROM Base base 
INNER JOIN Child child ON child.base_id = base.id 
WHERE (base.`status` = "active" 
AND base.application = "template")or (base.`status` = "active" and base.application = "template" and base.role = "public"); 
+0

我試過這個,但是這不會返回正確的結果。 –

+0

你能否解釋你需要什麼結果 – Assen

+0

我做了一個編輯...現在檢查 – Assen