Mysql 查询不';我们不能返回预期的结果

Mysql 查询不';我们不能返回预期的结果,mysql,subquery,Mysql,Subquery,此查询不返回预期结果: select users.username,firstname,lastname,nickname,address,mobile,email,gender from users where username = (select userid from friends where friendid = 'ahmedhosni84') OR (select friendid from friends where userid = 'ahmedhosni

此查询不返回预期结果:

 select users.username,firstname,lastname,nickname,address,mobile,email,gender 
 from users
 where 
   username = (select userid from friends where friendid = 'ahmedhosni84')  OR
   (select friendid from friends where userid = 'ahmedhosni84');
我想把所有关于朋友的信息都输入到指定的用户名中,并且只输出第一个子查询,同时输出两个子查询

你要么做

username = 'X' OR username = 'Y'


我认为您需要的语法是:

select users.username,firstname,lastname,nickname,address,mobile,email,gender 
 from users
 where 
 username IN (select userid from friends where friendid = 'ahmedhosni84')
 or
 username IN (select friendid from friends where userid = 'ahmedhosni84');

编辑:使用“IN”因为这些子查询返回多个结果。

您确实可以执行类似的查询--它们可能不会返回所需的结果。当我使用“答案”子查询返回多行时,出现了此错误。这意味着,如果用户有多个朋友,我将出错。我使用了您告诉我的两种类型,但仍然存在此错误并非所有courseChange
username=
的用户都能在中更改
username,或者在子查询中添加
LIMIT 1
。当我使用你的答案时,我遇到了这个错误。非常感谢,我正在测试,但我很高兴认识你们所有人。
username IN ('X', 'Y')
select users.username,firstname,lastname,nickname,address,mobile,email,gender 
 from users
 where 
 username IN (select userid from friends where friendid = 'ahmedhosni84')
 or
 username IN (select friendid from friends where userid = 'ahmedhosni84');