2

クエリが正しい場合、BubQuery は常に空の結果を返します。

最初のクエリ:

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

結果:

ここに画像の説明を入力

2 番目のクエリ:

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 //これはサンプル テーブルです。

クエリの上では、常に空の行が返されます。ただし、各クエリは、単一で実行された場合に結果を返します。本当にどこが間違っているのかわかりません。答えを更新するか、私に提案してください。

4

2 に答える 2

1

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)
于 2016-09-09T14:29:10.837 に答える
0
SELECT * 
FROM user
WHERE user_age IN 
(SELECT user_age_list user_age 
 FROM user_detail
 WHERE id='1');

ここではグループ連結は必要ありません。エンジンは、結果セットがグループ連結のない包括的なリストであることを認識しています。

'1,22,34' を各 user_age と比較しようとしているため、結果が得られません。

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

したがって、結果はありません。

于 2016-09-09T14:28:22.733 に答える