SELECT Benutzer.benutzername
FROM Benutzer
WHERE Benutzer_ID =
(SELECT Benutzer_ID_1
FROM Spiel WHERE NextToPlay ='35'
AND Benutzer_ID_2 ='35' )
AND
Benutzer_ID =
(SELECT Benutzer_ID_2
FROM Spiel WHERE NextToPlay ='35'
AND Benutzer_ID_1 ='35');

但总是得到错误,我的子查询返回超过1行。有人能帮助我吗?
答案 0 :(得分:1)
SELECT Benutzer.benutzername
FROM Benutzer
WHERE Benutzer_ID IN
(SELECT Benutzer_ID_1
FROM Spiel WHERE NextToPlay ='35'
AND Benutzer_ID_2 ='35' )
AND
Benutzer_ID IN
(SELECT Benutzer_ID_2
FROM Spiel WHERE NextToPlay ='35'
AND Benutzer_ID_1 ='35');
使用子查询时,您应该考虑使用IN
,这允许超过1个结果。
除非您确定您的查询只会返回1行
答案 1 :(得分:0)
您的一个或两个子查询返回多个结果。在使用=
运算符时,您需要返回单个结果。您可以使用IN
运算符运行以匹配多个结果:
SELECT Benutzer.benutzername
FROM Benutzer
WHERE Benutzer_ID IN
(SELECT Benutzer_ID_1
FROM Spiel WHERE NextToPlay ='35'
AND Benutzer_ID_2 ='35' )
AND
Benutzer_ID IN
(SELECT Benutzer_ID_2
FROM Spiel WHERE NextToPlay ='35'
AND Benutzer_ID_1 ='35');