我有两张桌子:
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