使用来自不同表的ID列表查询数据

时间:2016-02-09 09:32:12

标签: mysql sql

我正试图在MySQL中做这样的事情。在一个表上查询另一个表中的id列表。 Group_Concat返回我想在第一个select中使用的逗号分隔ID列表。我的尝试导致错误。

(错误代码:1064。您的SQL语法有错误;请查看与您的MySQL服务器版本对应的手册,以便在'IN(SELECT GROUP_CONCAT(t.id SEPARATOR',')FROM附近使用正确的语法m.my_aspnet_detai'在第2行)

如何使用正确的语法编写?

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'
);

1 个答案:

答案 0 :(得分:0)

无需GROUP_CONCAT

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'