我有两张桌子:
matches TABLE
FIELDS: record, date, competition
outrights TABLE
FIELDS: record, competition
我想要的是选择按不同竞争类型分组的行。以下是我单独处理每个表时工作正常的陈述。
首先,从“匹配”开始,并且只有在日期尚未过去时才会显示:
SELECT competition, date FROM matches WHERE date >= '$currentTime' GROUP BY competition
跟随'outrights'中的行:
SELECT competition FROM outrights GROUP BY competition
这一切都非常简单,除了相同的竞争价值经常(但不总是)出现在两个表格中。我已经看过很多不同的方法(包括LEFT和RIGHT JOINS),但还没有找到一个简单的解决方案。基本上我想要两个表中出现的不同竞争类型,没有重复。这可能吗?
答案 0 :(得分:4)
这就是你要找的东西。有点困惑的问题,但似乎你想要两个表格的竞争列的DISTINCT列表
SELECT DISTINCT competition
FROM
(
SELECT competition FROM matches
UNION
SELECT competition from outrights
) AS t
如果您需要仅在两个表格中出现的独特竞赛,而不仅仅是一个或两个,您可以使用
SELECT DISTINCT competition
FROM
(
SELECT competition FROM matches INNER JOIN
outrights ON matches.competition = outrights.competition
) AS t