SQL连接表和比较同一列中的值

SQL连接表和比较同一列中的值,sql,oracle,oracle11g,relational-database,Sql,Oracle,Oracle11g,Relational Database,你好,我有这两张桌子: Team: team_id team_name division 及 团队数据示例: (1, Anaheim, P) (2, Arizona, P) (3, Boston, S) (4, Buffalo, M) (5, Detroit, M) 和匹配: (1, date, 1, 2) (2, date, 2, 3) (3, date, 5, 3) 结果应该只有阿纳海姆(在同一分区对阵亚利桑那州) 我只想列出球队的名字,他们只和同一分区的球队比赛。我如何在SQL和关系

你好,我有这两张桌子:

Team:
team_id
team_name
division

团队数据示例:

(1, Anaheim, P)
(2, Arizona, P)
(3, Boston, S)
(4, Buffalo, M)
(5, Detroit, M)
和匹配:

(1, date, 1, 2)
(2, date, 2, 3)
(3, date, 5, 3)
结果应该只有阿纳海姆(在同一分区对阵亚利桑那州)


我只想列出球队的名字,他们只和同一分区的球队比赛。我如何在SQL和关系代数中做到这一点?除法是唯一的字符值。感谢您的帮助……

向我们展示样本数据和预期结果。您应该在现有的模式/数据中多做一些工作欢迎使用堆栈溢出!这是一个你可以就你所写的软件所遇到的问题提问并获得答案的网站,但它不是一个“为我做作业”或“为我做工作”的网站。当你问一个问题时,你应该包括你写的代码和你得到的具体错误,或者你的程序产生的结果,以及对你期望的结果的解释。没有这一点,我们真的没有什么可以帮助你的。请编辑您的问题以显示您所做的工作,并告诉我们代码存在哪些问题。再次欢迎使用堆栈溢出!向我们展示样本数据和预期结果。您应该在现有的模式/数据中多做一些工作欢迎使用堆栈溢出!这是一个你可以就你所写的软件所遇到的问题提问并获得答案的网站,但它不是一个“为我做作业”或“为我做工作”的网站。当你问一个问题时,你应该包括你写的代码和你得到的具体错误,或者你的程序产生的结果,以及对你期望的结果的解释。没有这一点,我们真的没有什么可以帮助你的。请编辑您的问题以显示您所做的工作,并告诉我们代码存在哪些问题。再次欢迎使用堆栈溢出!有趣的是,这是正确的答案——最初的问题是询问单个团队的名称(阿纳海姆是唯一正确的答案),但这个被接受的“正确答案”查询返回了成对的团队。另外,如果一支球队(亚利桑那州)与其他分区的球队比赛,即使他们也与本分区的球队比赛,原始问题也会取消该队的参赛资格。这个答案没有那么做。然而,OP很高兴。首先,这个答案是在OP用样本数据更新帖子之前发布的-请检查时间戳。其次,对于样本数据,查询将只输出阿纳海姆(在同一赛区与亚利桑那州比赛)——这正是OP要求阿纳海姆与亚利桑那州比赛的结果。现在,如果你想在英语中玩语义游戏,看看这是否是被问到的问题,那么请随意发布你自己的答案,或者你可以在你的答案之前立即接受OPs的评论。@MT0-我的评论实际上是针对OP的,而不是针对你的。我本来打算提出一个解决方案,但在接受了你的回答后,我不能认真对待OP,他显然很困惑。尽管如此,我仍然看不出你的查询如何返回单个团队名称而不是一对名称,甚至忽略了其他所有内容。有趣的是,这是正确的答案——最初询问单个团队名称的问题(阿纳海姆是唯一正确的答案),但这个被接受的“正确答案”查询返回了成对的团队。另外,如果一支球队(亚利桑那州)与其他分区的球队比赛,即使他们也与本分区的球队比赛,原始问题也会取消该队的参赛资格。这个答案没有那么做。然而,OP很高兴。首先,这个答案是在OP用样本数据更新帖子之前发布的-请检查时间戳。其次,对于样本数据,查询将只输出阿纳海姆(在同一赛区与亚利桑那州比赛)——这正是OP要求阿纳海姆与亚利桑那州比赛的结果。现在,如果你想在英语中玩语义游戏,看看这是否是被问到的问题,那么请随意发布你自己的答案,或者你可以在你的答案之前立即接受OPs的评论。@MT0-我的评论实际上是针对OP的,而不是针对你的。我本来打算提出一个解决方案,但在接受了你的回答后,我不能认真对待OP,他显然很困惑。尽管如此,我仍然不知道您的查询如何返回单个团队名称而不是一对名称,甚至忽略了其他所有内容。
SELECT t1.team_name AS team_name1,
       t2.team_name AS team_name2
FROM   team t1
       INNER JOIN match m
       ON ( t1.team_id = m.team_team_id )
       INNER JOIN team t2
       ON ( t2.team_id = m.team_team_id1 )
WHERE  t1.division = t2.division
SELECT t1.team_name AS team_name1,
       t2.team_name AS team_name2
FROM   team t1
       INNER JOIN match m
       ON ( t1.team_id = m.team_team_id )
       INNER JOIN team t2
       ON ( t2.team_id = m.team_team_id1 )
WHERE  t1.division = t2.division