Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/66.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 在嵌套查询中按值排序?_Php_Mysql_Sql_Sql Order By - Fatal编程技术网

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;