MySql - 子查询无法正常工作

MySql - SubQuery is not working properly

如果查询正确,BubQuery 总是return空结果。

第一次查询:

SELECT * FROM `user` WHERE user_age IN(1,22,34);

结果:

第二次查询:

SELECT GROUP_CONCAT(user_age_list) AS user_age FROM `user_detail` WHERE id='1';

结果:

我正在尝试:

SELECT * FROM `user` WHERE user_age IN(SELECT GROUP_CONCAT(user_age_list) AS user_age FROM `user_detail` WHERE id='1');

Sqlfiddle: http://sqlfiddle.com./#!9/d6515f/3 //This is a sample table.

上面的查询总是return空行。 但是每个查询 return 如果其 运行 单个结果。 真的不知道哪里出错了。 请更新答案或建议我。

SELECT * 
FROM user
WHERE user_age IN 
(SELECT user_age_list user_age 
 FROM user_detail
 WHERE id='1');

这里不需要组连接。引擎知道结果集是一个没有组 concat 的包含列表。

它试图做的是将“1、22、34”与每个 user_age 进行比较,这就是为什么您得不到结果的原因。

1 <> '1,22,34'
22 <> '1,22,34'
34 <> '1,22,34' 

因此没有结果。

避免使用 GROUP_CONCAT

SELECT * 
FROM `user` 
WHERE user_age IN(SELECT user_age_list FROM `user_detail` WHERE id='1');

已更新

SELECT * 
FROM `user` u 
WHERE EXISTS (SELECT 1 FROM `user_detail` ud  WHERE id='1' AND ud.user_age_list = u.user_age)