我正在使用MySQL,如果我尝试执行子查询,我会收到错误...我的子查询如下:
sponsor_id列包含10条带id(自动增量)的记录。
SELECT * FROM user where id=(select id from user where sponsor_id ='10002')
提前致谢
答案 0 :(得分:5)
使用 IN 代替=。
SELECT * FROM user where id IN (select id from user where sponsor_id ='10002' AND id IS NOT NULL)
答案 1 :(得分:1)
原因是您的子查询很可能返回多个值。如果您使用等于运算符,它应该只返回一个值。
否则将IN
子句用作:
SELECT * FROM user where id IN (select id from user where sponsor_id ='10002')
您也可以使用INNER JOIN
或任何其他JOIN
来满足您的目的。
答案 2 :(得分:0)
您收到错误是因为'='
将对单个值进行操作,而不是对多个值进行操作。因此请使用'IN'
opeartor或确保子查询在使用{{1}时仅返回单个值}}
答案 3 :(得分:0)
试试这个
SELECT * FROM user where id IN (select id from user where sponsor_id ='10002')
或:
SELECT * FROM user where id =(select id from user where sponsor_id ='10002' Limit 1)