Mysql 使用不同表中的ID列表查询数据

Mysql 使用不同表中的ID列表查询数据,mysql,sql,Mysql,Sql,我正在MySQL中尝试这样做。使用来自另一个表的ID列表查询一个表。该组返回我要在第一次选择中使用的逗号分隔ID列表。我的尝试导致了一个错误 错误代码:1064。您的SQL语法有错误;查看与您的MySQL服务器版本对应的手册,了解第2行“在选择组中_CONCATt.id分隔符”、“从m.my_aspnet_detai”附近使用的正确语法 如何用正确的语法编写 SELECT * FROM m.my_aspnet_membership m where m.userId = IN ( SELECT

我正在MySQL中尝试这样做。使用来自另一个表的ID列表查询一个表。该组返回我要在第一次选择中使用的逗号分隔ID列表。我的尝试导致了一个错误

错误代码:1064。您的SQL语法有错误;查看与您的MySQL服务器版本对应的手册,了解第2行“在选择组中_CONCATt.id分隔符”、“从m.my_aspnet_detai”附近使用的正确语法

如何用正确的语法编写

SELECT * FROM m.my_aspnet_membership m 
where m.userId = IN
(
SELECT GROUP_CONCAT(t.id SEPARATOR ',')
  FROM m.my_aspnet_details t
 WHERE t.customerid = '2'
);

不需要分组

SELECT * FROM m.my_aspnet_membership m 
where m.userId = IN
(
SELECT t.id 
  FROM m.my_aspnet_details t
 WHERE t.customerid = '2'
);
或者最好使用JOIN

SELECT * 
FROM m.my_aspnet_membership 
         INNER JOIN m.my_aspnet_details t ON t.id=m.userId
WHERE t.customerid = '2'

我认为在语句中使用in是不可能的。。我想它会把它看作一个字符串,而不是用逗号分隔的值。尝试使用instrconcate…,转换为IDThankyouStanislavl的字符串!JOIN版本非常有效。在版本中,我得到一个错误。错误代码:1064。您的SQL语法有错误;检查与您的MySQL服务器版本对应的手册,以了解在第2行的SELECT t.id FROM m m.my\u aspnet\u details t其中t.customerid='中使用的正确语法