Php 在嵌套查询中按值排序?
我目前正在获得预期的输出,但我现在希望按Php 在嵌套查询中按值排序?,php,mysql,sql,sql-order-by,Php,Mysql,Sql,Sql Order By,我目前正在获得预期的输出,但我现在希望按skill\u match排序查询,但不确定如何按skill\u match排序当前查询技能匹配存在于嵌套查询中 我的问题是如何按照skill\u match $matches = $this->db->query(" SELECT * FROM (SELECT job_string, jobseeker_string, requirement_type, count
skill\u match
排序查询,但不确定如何按skill\u match
排序当前查询<代码>技能匹配存在于嵌套查询中
我的问题是如何按照skill\u match
$matches = $this->db->query("
SELECT *
FROM
(SELECT job_string, jobseeker_string, requirement_type,
count(1) / (SELECT count(1) FROM employer_requirements WHERE jobseeker_string = j.jobseeker_string AND requirement_type = 'e' ) AS skill_match
FROM employer_requirements r
INNER JOIN jobseeker_skills j
ON r.skill_string = j.skill_string
GROUP BY job_string, jobseeker_string) t
LEFT JOIN users u
ON t.jobseeker_string = u.string
INNER JOIN applications a
on t.job_string = a.job_string and t.jobseeker_string = a.jobseeker_string
WHERE a.job_string = '".$str."'
ORDER_BY r.skill_match
");
return $matches;
当我执行print\u r()
并希望ORDER\u BY skill\u match
值时,我得到以下输出:
Array
(
[0] => Array
(
[job_string] => G2vJhXNUquRELfxQ
[jobseeker_string] => ltyjBhtbHn5knsht
[requirement_type] => e
[skill_match] => 0.2000
[id] => 1
[user_level] => 3
[name] => Steve
[email] => something@hotmail.com
[password] => 3b8751e0f3f81ea085329e44d1d28f2e105f4031efd02ff7430c05d88ce90dcbacaef2f4239882e784b3d133d8aadc88404e670b284b95ab6963b58d00a6b864
[score] => 116
[string] => ltyjBhtbHn5knsht
[date_created] => 2014-04-15 12:16:13
[employer_string] => sm4jBhtbv13knsht
[application_string] => bX0JOwUnhsKEQaAq
)
[1] => Array
(
[job_string] => G2vJhXNUquRELfxQ
[jobseeker_string] => qThkM0OIKVUukp6J
[requirement_type] => e
[skill_match] => 0.4000
[id] => 2
[user_level] => 3
[name] => Bruce
[email] => someone@gmail.com
[password] => 3b8751e0f3f81ea085329e44d1d28f2e105f4031efd02ff7430c05d88ce90dcbacaef2f4239882e784b3d133d8aadc88404e670b284b95ab6963b58d00a6b864
[score] => 116
[string] => qThkM0OIKVUukp6J
[date_created] => 2014-04-15 12:16:13
[employer_string] => sm4jBhtbv13knsht
[application_string] => bX0JOwUnhsKEQaAq
)
)
我很感激任何帮助。我认为不应该是
按r.skill\u匹配排序
,而是按t.skill\u匹配排序
。我认为不应该是按r.skill\u匹配排序
,而是按t.skill\u匹配排序。我认为不应该是按r.skill\u匹配排序
,但是,应该是按t.skill\u match排序。我认为不应该是按r.skill\u match排序,而应该是按t.skill\u match排序
不带底壳的订单
不带底壳的订单
不带底壳的订单
我已经尝试了几次迭代,分别是按r.skill\u匹配的ORDER\u
、按t.skill\u匹配的ORDER\u
和按skill\u匹配的ORDER\u
。抛出以下错误:您的SQL语法有错误;查看与MySQL服务器版本对应的手册,了解第14行“ORDER_BY t.skill_match”附近使用的正确语法,了解正确的术语是ORDER BY
而不是ORDER_BY
没有下划线u@MKhalidJunaid我真是太愚蠢了,我不知道为什么要添加下划线。谢谢大家的努力。我已经试过几次了,分别是按r.skill\u match排序
,按t.skill\u match排序
和按skill\u match排序
。抛出以下错误:您的SQL语法有错误;查看与MySQL服务器版本对应的手册,了解第14行“ORDER_BY t.skill_match”附近使用的正确语法,了解正确的术语是ORDER BY
而不是ORDER_BY
没有下划线u@MKhalidJunaid我真是太愚蠢了,我不知道为什么要添加下划线。谢谢大家的努力。我已经试过几次了,分别是按r.skill\u match排序
,按t.skill\u match排序
和按skill\u match排序
。抛出以下错误:您的SQL语法有错误;查看与MySQL服务器版本对应的手册,了解第14行“ORDER_BY t.skill_match”附近使用的正确语法,了解正确的术语是ORDER BY
而不是ORDER_BY
没有下划线u@MKhalidJunaid我真是太愚蠢了,我不知道为什么要添加下划线。谢谢大家的努力。我已经试过几次了,分别是按r.skill\u match排序
,按t.skill\u match排序
和按skill\u match排序
。抛出以下错误:您的SQL语法有错误;查看与MySQL服务器版本对应的手册,了解第14行“ORDER_BY t.skill_match”附近使用的正确语法,了解正确的术语是ORDER BY
而不是ORDER_BY
没有下划线u@MKhalidJunaid我真是太愚蠢了,我不知道为什么要添加下划线。谢谢你们的努力。
$matches = $this->db->query("
SELECT *
FROM
(SELECT job_string, jobseeker_string, requirement_type,
count(1) / (SELECT count(1) FROM employer_requirements WHERE jobseeker_string = j.jobseeker_string AND requirement_type = 'e' ) AS skill_match
FROM employer_requirements r
INNER JOIN jobseeker_skills j
ON r.skill_string = j.skill_string
GROUP BY job_string, jobseeker_string) t
LEFT JOIN users u
ON t.jobseeker_string = u.string
INNER JOIN applications a
on t.job_string = a.job_string and t.jobseeker_string = a.jobseeker_string
WHERE a.job_string = '".$str."'
ORDER BY r.skill_match
");
return $matches;