我有两张桌子:

matches TABLE
   FIELDS: record, date, competition

outrights TABLE
   FIELDS: record, competition

我想要的是,选择按不同竞争类型分组的行。下面是当我分别对待每一张桌子时,这些陈述都很有效。
首先,从“匹配”开始,只有在日期还未过去的情况下:
SELECT competition, date FROM matches WHERE date >= '$currentTime' GROUP BY competition

后面是“outlihts”中的行:
SELECT competition FROM outrights GROUP BY competition

这是非常直接的,除了相同的竞争价值将经常(但并不总是)出现在两个表。我已经研究了许多不同的方法(包括左连接和右连接),但是还没有找到一个简单的解决方案。基本上我想要两个表中出现的不同竞争类型,而不是重复。这可能吗?

最佳答案

这就是你要找的。有点被这个问题搞糊涂了,但似乎您希望从两个表中分别列出competition列

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

08-07 17:37