MySql - SubQuery无法正常工作

时间:2016-09-09 14:23:02

标签: mysql subquery mysql-dependent-subquery

如果查询正确,BubQuery始终返回空结果。

第一次查询:

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

结果:

enter image description here

第二次查询:

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

结果: enter image description here

我正在尝试:

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 //这是一个示例表。

查询上方始终返回空行。 但是如果每个查询运行单一,则返回结果。 真的我不知道错误在哪里。 请更新答案或建议我。

2 个答案:

答案 0 :(得分:1)

避免使用GROUP_CONCAT

SELECT 
    A.EQNUM, A.[Varchar50AllowNulls], B.EQNUM, B.[TextNotAllowNulls]
FROM 
    A 
INNER JOIN 
    B ON A.EQNUM = B.EQNUM
WHERE 
    ((A.[Varchar50AllowNulls] <> B.[TextNotAllowNulls]));

<强>已更新

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

答案 1 :(得分:0)

1182
1543
1847
2286

904
1231
1421
1735

813
1120
1272
1557

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

它要做的是比较&#39; 1,22,34&#39;到每个user_age,这就是为什么你没有得到结果。

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

因此没有结果。