我正试图在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'
);
答案 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'