我有一个概率。我想获得所有用户,下一个用户必须与之对战。我的 sql select 看起来像这样:
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 行。有人可以帮助我吗?
最佳答案
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 行
关于MySQL 错误 1242 : Subquery returns more then 1 row,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28218683/