mysql多重连接不返回任何内容
我有三张桌子:mysql多重连接不返回任何内容,mysql,Mysql,我有三张桌子: 部门(ID,部门) 团队(ID,团队) 分数(ID、关系ID、分数) 亲属(ID、RelationID、FieldID、ValID) 亲属表用于按关系ID“链接”部门和团队 FieldID定义表格(1=部门;2=团队) ValID=给定表的ID。 因此,我的fk是FieldID和ValID的组合 输出应如下所示: Southwest Division | Tomcats | 17 Southwest Division | Bears | 12 Northeast
部门(ID,部门)
团队(ID,团队)
分数(ID、关系ID、分数)
亲属(ID、RelationID、FieldID、ValID)
亲属表用于按关系ID“链接”部门和团队
FieldID定义表格(1=部门;2=团队)
ValID=给定表的ID。
因此,我的fk是FieldID和ValID的组合
输出应如下所示: Southwest Division | Tomcats | 17 Southwest Division | Bears | 12 Northeast Division | Tomcats | 20 Northeast Division | Lions | 8 Northeast Division | Cheetahs | 13 Southeast Division | Cheetahs | 19 Southeast Division | Lions | 12 Southeast Division | Zebras | 6 此sql不返回任何记录。即使我删除了答案、分组和排序,我也不会得到任何记录 我怎样才能使桌子返回我需要的东西?
如果需要,我会重新设计整个系统。您使用的是MySQL还是Access?您的连接周围的括号使我看起来像是访问。另外,当您按分区进行分组时,这里不需要使用
DISTINCT
。我不认为这是你的问题,但我认为值得一提。另一个问题,你为什么要从答案中选择?你从来没有在你的问题中提到过那张桌子。这可能是你问题的一部分吗?我想知道什么时候我会被列在“答案”表上:)分数就是答案。我用来测试的表格是分数,这只是我在这里发布的一个错误。我忽略了指出,超过1个部门和/或超过1个团队可以与1个分数关联。另外,一个给定的团队可以隶属于多个部门,反之亦然。我猜这些参数是Access&Sql Server中旧编程时代的惯例。这里是一个表转储,您可以在MySql中轻松地重新创建它们
SELECT DISTINCT divisions.Division, teams.Team, AVG(scores.Score) AS Score FROM
(answers INNER JOIN
((relatives
INNER JOIN divisions ON relatives.FieldID = 1 AND relatives.ValID = divisions.ID)
INNER JOIN teams ON relatives.FieldID = 2 AND relatives.ValID = teams.ID)
ON answers.RelationID = relatives.RelationID)
GROUP BY Division, Team
ORDER BY Division, Team