我试着做一个查询,看起来像这样:SQL IN子查询
SELECT `online`.user_id, users.profile_image_url, profile_info.profile_text, users.kind_of_relationship, users.gender_search, users.country
FROM `online`, users, profile_info
WHERE (`online`.user_id = users.id)
AND (`online`.user_id = profile_info.profile_user_id)
AND (users.user_age >= '25' AND users.user_age <= '38')
AND (users.kind_of_relationship = 'Friendship')
AND (users.gender = 'female')
AND users.country IN (SELECT searching_countries.country FROM searching_countries, `online` WHERE `online`.user_id = searching_countries.user_id);
和失败。
但是如果我运行此查询这样
SELECT `online`.user_id, users.profile_image_url, profile_info.profile_text, users.kind_of_relationship, users.gender_search, users.country
FROM `online`, users, profile_info
WHERE (`online`.user_id = users.id)
AND (`online`.user_id = profile_info.profile_user_id)
AND (users.user_age >= '25' AND users.user_age <= '38')
AND (users.kind_of_relationship = 'Friendship')
AND (users.gender = 'female')
AND users.country IN ('Sweden', 'Austria');
那么查询工作正常。
另外,如果我只是运行查询:
SELECT searching_countries.country FROM searching_countries, `online` WHERE `online`.user_id = searching_countries.user_id
即时得到结果瑞典,奥地利..
任何想法,为什么这IN(SELECT searching_countries.country FROM searching_countries,online
WHERE online
.user_id = searching_countries.user_id)不想工作?
预先感谢您!
你是什么意思用'失败'?查询不会返回确切的结果?或者它有语法错误? –
嗨, 它显示NULL。那就是问题 – Mensur