我有一个INNER JOIN
表A与表B和表C的查询,我有另一个查询INNER JOIN
表A与表D.我可以实现我想做的事情合并2个结果,删除重复项并在PHP代码中对它们进行排序,但我想知道MySQL是否具有此功能,我也认为一旦我理解它就会更快更容易编码。从本质上讲,我希望从查询2获得查询1的结果。或许以下内容将有所帮助:
查询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 :(得分:0)
您希望在两个查询之间放置UNION DISTINCT
语句。这将合并两者的结果集并删除重复项。然后,您可以在所有UNIONS(如果有的话)之后放置ORDER BY子句。
例如:
SELECT col1, col2 FROM tableA
UNION DISTINCT
SELECT col1, col2 FROM tableB
ORDER BY col2 DESC