Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/xamarin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在一个SQL中显示两行_Sql_Database_Ms Access_Select - Fatal编程技术网

在一个SQL中显示两行

在一个SQL中显示两行,sql,database,ms-access,select,Sql,Database,Ms Access,Select,我的数据库中有三个表,分别是Equipe(团队)、Match(比赛)、Jouer(比赛),我试图用以下方式显示联赛结果: SELECT DISTINCT M.ID_MATCH, NOM_EQUIPE, BUT_MARQUE FROM EQUIPE AS E, JOUER AS J, [MATCH] AS M WHERE E.ID_EQUIPE = J.ID_EQUIPE and J.ID_MATCH = M.ID_MATCH ORDER BY M.ID_MATCH; 这张桌子是这样的: 装备:

我的数据库中有三个表,分别是Equipe(团队)、Match(比赛)、Jouer(比赛),我试图用以下方式显示联赛结果:

SELECT DISTINCT M.ID_MATCH, NOM_EQUIPE, BUT_MARQUE
FROM EQUIPE AS E, JOUER AS J, [MATCH] AS M
WHERE E.ID_EQUIPE = J.ID_EQUIPE and J.ID_MATCH = M.ID_MATCH
ORDER BY M.ID_MATCH;
这张桌子是这样的:

装备:

匹配:

它们与泰伯焦耳有关:

问题是我得到的结果是这样的:

有没有什么方法可以让结果更像

 ID_MATCH , Team1 , result1 , Team2 , result2
试试这个: 诀窍在于在ID_比赛中加入JOUER,但也只有当J2.ID_EQUIPE>J1.ID_EQUIPE时才加入JOUER。这样你只会得到1个团队组合,而不是4个


我希望这有帮助。好机会

在您的表格模式中,
Team1、result1、Team2、result2
是什么意思?在结果中,您可以看到我对两个团队有相同的ID_匹配,我想做的是将两行改为int one@daniel.shih交叉表查询或VBA,我认为因为只有两个团队(在一场比赛中),所以不需要交叉表。有趣的模式并没有强制执行这一点,但我认为现实世界确实如此(OP证实了这一点)。不幸的是,该模式使SQL变得比实际情况更复杂。如果一场比赛包含两支球队各自得分的参考资料和列,那就更好了。我这里有一个解决方案。它应该给你你想要的东西,但我希望你能试驾一下,因为我自己没有数据来测试它。@NidalEl-它在我这边解析得很清楚。你在使用什么数据库?@NidalEl-你早就复制了文本了吗?当我第一次发布这篇文章时,有几分钟我错过了一个“ON”。我几乎立刻抓住了它(并修复了它),因为我在发布后刚刚校对过它。但是如果您在这种状态下复制它,它会给您带来某种语法/解析错误。@NidalEl-自从我上次更新以来,您见过这个解决方案吗?它在我这边有效。如果这对你有帮助,请记住“接受”这个答案。谢谢!
SELECT M.ID_MATCH, E1.NOM_EQUIPE, J1.BUT_MARQUE, E2.NOM_EQUIPE, J2.BUT_MARQUE
FROM JOUER AS J1
INNER JOIN JOUER AS J2 ON J2.ID_MATCH = J1.ID_MATCH and J2.ID_EQUIPE > J1.ID_EQUIPE 
INNER JOIN [MATCH] AS M ON J1.ID_MATCH = M.ID_MATCH
INNER JOIN EQUIPE AS E1 ON E1.ID_EQUIPE = J1.ID_EQUIPE
INNER JOIN EQUIPE AS E2 ON E2.ID_EQUIPE = J2.ID_EQUIPE
ORDER BY M.ID_MATCH;