我有一张表GAMES
,其中包含过去玩游戏的数据。此查询的目的是查找在同一日期播放的所有游戏并打印日期,播放的两个团队和结果。表格设置如下:
游戏
Home | Visitors|Date |Result
-------------------------------------
Bengals| Browns | 1/1/2012 | Tie
Browns | Bengals | 1/1/2012 | Loss
Giants | Jets | 4/2/2013 | Win
Giants | Cowboys | 4/2/2013 | Loss
Bears | Ravens | 5/3/2012 | Tie
Bills | Dolphins| 10/11/2014| Win
...
我认为解决方案是在类似于
的查询中加入表select
A.Date, A.Home, A.Visitors, A.Result
from
GAMES as A, GAMES as B
where
A.Date = B.Date
and A.Home = B.Visitors;
但是在这个特定的查询中,它首先只返回一个游戏,总共有6个游戏应该显示,并且只返回表A中的值。有没有办法可以编写查询它一次找到所有游戏,而不是定制一个特定的查询来找到每个游戏?感谢。
期望的结果将是:
1 2012-1-1 Bengals Browns Tie
2 2012-1-1 Browns Bengals Loss
3 2013-4-2 Giants Jets Win
4 2013-4-2 Giants Cowboys Loss
etc.
答案 0 :(得分:0)
好的,听起来像你正在尝试做的就是找到发生多个游戏的日期。在那种情况下
SELECT a.Date, count(*) as CountOfDate
FROM GAMES a
GROUP BY a.Date
HAVING count(*) > 1
答案 1 :(得分:0)
这样的事情怎么样?
SELECT
A.Date, A.Home, A.Visitors, A.Result
FROM
GAMES as A
WHERE EXISTS (SELECT *
FROM GAMES as B
WHERE A.DATE = B.DATE
AND (A.Home <> B.Home
OR A.Visitors <> B.Visitors))
ORDER by A.Date ASC