2011-10-04 19 views
0

我有一個查詢,表A與表B和表C,我有另一個查詢,表A和表D.我可以實現我想要的通過合併2個結果來完成,刪除重複項並在PHP代碼中對它們進行排序,但是我想知道MySQL是否具有這種功能,我也認爲一旦我理解它就會更快更容易編寫代碼。從本質上講,我想有從查詢1,或2,查詢的結果也許下面將幫助:MySQL查詢消除了使用這個PHP代碼

查詢1:

SELECT pkAssociation, associations.strNameEn, associations.strNameFr 
FROM associations 
INNER JOIN eventassociations ON fkAssociation = pkAssociation 
INNER JOIN events on fkEvent = pkEvent 
WHERE events.enumDeleted = 'no' 
GROUP BY pkAssociation 

查詢2:

SELECT pkAssociation, associations.strNameEn, associations.strNameFr 
FROM associations 
INNER JOIN associationprograms AS aprogs ON aprogs.fkAssociation = associations.pkAssociation 
GROUP by pkAssociation 

的表不要」沒有任何其他相關性不會顯示在查詢中。如果我沒有正確地問這個問題,我很抱歉,我甚至不知道如何正確地詢問這個問題。如果需要列名或樣本數據,那麼我可以提供一些。對於不便和長時間的帖子感到抱歉。

回答

0

您希望UNION DISTINCT語句放置在兩個查詢之間。這將結合兩者的結果集並刪除重複項。您可以在所有UNION(如果有)之後放置ORDER BY子句。

例如:

SELECT col1, col2 FROM tableA 

UNION DISTINCT 

SELECT col1, col2 FROM tableB 

ORDER BY col2 DESC 
+0

恰好就是這樣。非常感謝。 – SpaceRacer