这是我从用户表中获取过滤器数据的查询,其中类别将从另一个表中获取。
SELECT * FROM jobfia_users
WHERE country_id='4'
and user_id IN (SELECT worker_id
FROM jobfia_worker_skills
WHERE skill_id = '42'
)
这不会给出任何错误,但也不会返回任何行。 虽然使用此过滤器的表格中有很多记录。
任何人都可以帮忙吗?
答案 0 :(得分:1)
除了INT ID周围的引号外,您的查询将更好地表达如下:
SELECT u.*
FROM jobfia_users u
INNER JOIN jobfia_worker_skills ws
ON ws.worker_id=u.user_id AND ws.skill_id = 42
WHERE u.country_id=4
答案 1 :(得分:0)
如果您的country_id
和skill_id
为int
类型,请移除值'
。
SELECT * FROM jobfia_users
WHERE country_id=4
and user_id IN (SELECT worker_id
FROM jobfia_worker_skills
WHERE skill_id = 42
)
答案 2 :(得分:0)
使用和不使用''测试您的代码它的工作原理。确保您有数据并且没有拼错一些列名。 也许你碰到了一些列名。尝试使用以下语法:
`table_name`.`collumn_name`
SELECT * FROM `jobfia_users`
WHERE `jobfia_users`.`country_id`='4'
and `jobfia_users`.`user_id` IN (SELECT `jobfia_worker_skills`.`worker_id`
FROM `jobfia_worker_skills`
WHERE `jobfia_worker_skills`.`skill_id` = '42'
)