繁体   English   中英

SELECT语句中的MySQL子查询

[英]MySQL Subquery in SELECT statement

我正在使用MySQL,当我尝试执行子查询时出现错误...我的子查询如下:

Sponsor_id列包含10条ID为ID(自动递增)的记录。

SELECT * FROM user where id=(select id from user where sponsor_id ='10002')

提前致谢

使用IN而不是=。

SELECT * FROM user where id IN (select id from user where sponsor_id ='10002' AND id IS NOT NULL)

原因是您的子查询很可能返回多个值。 如果您使用equals to运算符,则它应仅返回一个值。

否则将IN子句用作:

SELECT * FROM user where id IN (select id from user where sponsor_id ='10002')

编辑:

您也可以根据自己的目的使用INNER JOIN或任何其他JOIN

您会收到错误消息,因为'='将对单个值而不是多个值进行操作。因此请使用'IN'符或确保子查询在使用'='时仅返回单个值。

尝试这个

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)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM