Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/288.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 使用两列将两个SQL表相互连接起来_Php_Mysql_Sql_Join - Fatal编程技术网

Php 使用两列将两个SQL表相互连接起来

Php 使用两列将两个SQL表相互连接起来,php,mysql,sql,join,Php,Mysql,Sql,Join,问题: $query = 'SELECT * FROM betyg_essays JOIN betyg_users ON betyg_essays.Examiner = betyg_users.UID'; $query = "SELECT (u1.Firstname + ' ' + u1.Lastname) AS Examiner, (u2.Firstname + ' ' + u2.Lastname) AS Supervisor

问题:

$query = 'SELECT * FROM betyg_essays JOIN betyg_users ON betyg_essays.Examiner = betyg_users.UID';
$query = "SELECT 
            (u1.Firstname + ' ' + u1.Lastname) AS Examiner, 
            (u2.Firstname + ' ' + u2.Lastname) AS Supervisor
        FROM betyg_essays grade
            INNER JOIN betyg_users u1 ON grade.Examiner = u1.UID
            INNER JOIN betyg_users u2 ON grade.Supervisor = u2.UID";
$query = "SELECT 
            CONCAT (u1.Firstname, ' ', u1.Lastname) AS Examiner, 
            CONCAT (u2.Firstname, ' ', u2.Lastname) AS Supervisor
        FROM betyg_essays grade
            INNER JOIN betyg_users u1 ON grade.Examiner = u1.UID
            INNER JOIN betyg_users u2 ON grade.Supervisor = u2.UID";
我试图将评分表(betyg_文章)中两列中的id“翻译”为另一个表(betyg_用户)中这些用户的真实姓名

评分表(betyg_论文)如下所示:

$query = 'SELECT * FROM betyg_essays JOIN betyg_users ON betyg_essays.Examiner = betyg_users.UID';
$query = "SELECT 
            (u1.Firstname + ' ' + u1.Lastname) AS Examiner, 
            (u2.Firstname + ' ' + u2.Lastname) AS Supervisor
        FROM betyg_essays grade
            INNER JOIN betyg_users u1 ON grade.Examiner = u1.UID
            INNER JOIN betyg_users u2 ON grade.Supervisor = u2.UID";
$query = "SELECT 
            CONCAT (u1.Firstname, ' ', u1.Lastname) AS Examiner, 
            CONCAT (u2.Firstname, ' ', u2.Lastname) AS Supervisor
        FROM betyg_essays grade
            INNER JOIN betyg_users u1 ON grade.Examiner = u1.UID
            INNER JOIN betyg_users u2 ON grade.Supervisor = u2.UID";

用户表(betyg\u users)如下所示:

$query = 'SELECT * FROM betyg_essays JOIN betyg_users ON betyg_essays.Examiner = betyg_users.UID';
$query = "SELECT 
            (u1.Firstname + ' ' + u1.Lastname) AS Examiner, 
            (u2.Firstname + ' ' + u2.Lastname) AS Supervisor
        FROM betyg_essays grade
            INNER JOIN betyg_users u1 ON grade.Examiner = u1.UID
            INNER JOIN betyg_users u2 ON grade.Supervisor = u2.UID";
$query = "SELECT 
            CONCAT (u1.Firstname, ' ', u1.Lastname) AS Examiner, 
            CONCAT (u2.Firstname, ' ', u2.Lastname) AS Supervisor
        FROM betyg_essays grade
            INNER JOIN betyg_users u1 ON grade.Examiner = u1.UID
            INNER JOIN betyg_users u2 ON grade.Supervisor = u2.UID";

PHP代码(到目前为止):

$query = 'SELECT * FROM betyg_essays JOIN betyg_users ON betyg_essays.Examiner = betyg_users.UID';
$query = "SELECT 
            (u1.Firstname + ' ' + u1.Lastname) AS Examiner, 
            (u2.Firstname + ' ' + u2.Lastname) AS Supervisor
        FROM betyg_essays grade
            INNER JOIN betyg_users u1 ON grade.Examiner = u1.UID
            INNER JOIN betyg_users u2 ON grade.Supervisor = u2.UID";
$query = "SELECT 
            CONCAT (u1.Firstname, ' ', u1.Lastname) AS Examiner, 
            CONCAT (u2.Firstname, ' ', u2.Lastname) AS Supervisor
        FROM betyg_essays grade
            INNER JOIN betyg_users u1 ON grade.Examiner = u1.UID
            INNER JOIN betyg_users u2 ON grade.Supervisor = u2.UID";
考官/主管栏(betyg_论文)与UID栏(betyg_用户)相对应

所需的输出应该是(使用Firstname/Lastname列):

$query = 'SELECT * FROM betyg_essays JOIN betyg_users ON betyg_essays.Examiner = betyg_users.UID';
$query = "SELECT 
            (u1.Firstname + ' ' + u1.Lastname) AS Examiner, 
            (u2.Firstname + ' ' + u2.Lastname) AS Supervisor
        FROM betyg_essays grade
            INNER JOIN betyg_users u1 ON grade.Examiner = u1.UID
            INNER JOIN betyg_users u2 ON grade.Supervisor = u2.UID";
$query = "SELECT 
            CONCAT (u1.Firstname, ' ', u1.Lastname) AS Examiner, 
            CONCAT (u2.Firstname, ' ', u2.Lastname) AS Supervisor
        FROM betyg_essays grade
            INNER JOIN betyg_users u1 ON grade.Examiner = u1.UID
            INNER JOIN betyg_users u2 ON grade.Supervisor = u2.UID";
  • 考官:约翰·霍普金斯。主管:迈克·贝克
  • 考官:约翰·霍普金斯。主管:迈克·贝克
  • 非工作SQL查询:

    $query = 'SELECT * FROM betyg_essays JOIN betyg_users ON betyg_essays.Examiner = betyg_users.UID';
    
    $query = "SELECT 
                (u1.Firstname + ' ' + u1.Lastname) AS Examiner, 
                (u2.Firstname + ' ' + u2.Lastname) AS Supervisor
            FROM betyg_essays grade
                INNER JOIN betyg_users u1 ON grade.Examiner = u1.UID
                INNER JOIN betyg_users u2 ON grade.Supervisor = u2.UID";
    
    $query = "SELECT 
                CONCAT (u1.Firstname, ' ', u1.Lastname) AS Examiner, 
                CONCAT (u2.Firstname, ' ', u2.Lastname) AS Supervisor
            FROM betyg_essays grade
                INNER JOIN betyg_users u1 ON grade.Examiner = u1.UID
                INNER JOIN betyg_users u2 ON grade.Supervisor = u2.UID";
    
    我没有尝试代码,您可能需要进行一些调整

    更新:修复了id的错误

    INNER JOIN betyg_users u2 ON e.Supervisor = u2.UID
    
    更新2:

    我已将+更改为CONCAT函数。显然,MySQL处理字符串的方式与SQL Server不同

    我没有尝试代码,您可能需要进行一些调整

    更新:修复了id的错误

    INNER JOIN betyg_users u2 ON e.Supervisor = u2.UID
    
    更新2:

    我已将+更改为CONCAT函数。显然,MySQL处理字符串的方式与SQL Server不同。

    试试这个

    SELECT CONCAT(betyg_users.`Firstname`," ",betyg_users.`Lastname`) AS `examiner_name`,
    CONCAT(betyg_users.`Firstname`," ",betyg_users.`Lastname`) AS `superviser_name`
    FROM `betyg_essays`
    INNER JOIN `betyg_users` ON betyg_essays.`Examiner` = betyg_users.`UID` 
    INNER JOIN `betyg_users` ON betyg_essays.`Supervisor` = betyg_users.`UID`;
    
    试试这个

    SELECT CONCAT(betyg_users.`Firstname`," ",betyg_users.`Lastname`) AS `examiner_name`,
    CONCAT(betyg_users.`Firstname`," ",betyg_users.`Lastname`) AS `superviser_name`
    FROM `betyg_essays`
    INNER JOIN `betyg_users` ON betyg_essays.`Examiner` = betyg_users.`UID` 
    INNER JOIN `betyg_users` ON betyg_essays.`Supervisor` = betyg_users.`UID`;
    

    在这里,您需要两次加入user_表,第一次是为了获得考官用户名,第二次是为了获得主管用户名

    SELECT (g1.FirstName + ' ' + g1.LastName) AS Examiner,' , (g2.FirstName + ' ' + g2.LastName) AS Supervisor
    FROM grading_table grade
    INNER JOIN user_table g1 ON grade.examiner = g1.uid
    INNER JOIN user_table g2 ON grade.supervisor = g2.uid
    

    在这里,您需要两次加入user_表,第一次是为了获得考官用户名,第二次是为了获得主管用户名

    SELECT (g1.FirstName + ' ' + g1.LastName) AS Examiner,' , (g2.FirstName + ' ' + g2.LastName) AS Supervisor
    FROM grading_table grade
    INNER JOIN user_table g1 ON grade.examiner = g1.uid
    INNER JOIN user_table g2 ON grade.supervisor = g2.uid
    

    最终解决方案:

    $query = 'SELECT * FROM betyg_essays JOIN betyg_users ON betyg_essays.Examiner = betyg_users.UID';
    
    $query = "SELECT 
                (u1.Firstname + ' ' + u1.Lastname) AS Examiner, 
                (u2.Firstname + ' ' + u2.Lastname) AS Supervisor
            FROM betyg_essays grade
                INNER JOIN betyg_users u1 ON grade.Examiner = u1.UID
                INNER JOIN betyg_users u2 ON grade.Supervisor = u2.UID";
    
    $query = "SELECT 
                CONCAT (u1.Firstname, ' ', u1.Lastname) AS Examiner, 
                CONCAT (u2.Firstname, ' ', u2.Lastname) AS Supervisor
            FROM betyg_essays grade
                INNER JOIN betyg_users u1 ON grade.Examiner = u1.UID
                INNER JOIN betyg_users u2 ON grade.Supervisor = u2.UID";
    

    最终解决方案:

    $query = 'SELECT * FROM betyg_essays JOIN betyg_users ON betyg_essays.Examiner = betyg_users.UID';
    
    $query = "SELECT 
                (u1.Firstname + ' ' + u1.Lastname) AS Examiner, 
                (u2.Firstname + ' ' + u2.Lastname) AS Supervisor
            FROM betyg_essays grade
                INNER JOIN betyg_users u1 ON grade.Examiner = u1.UID
                INNER JOIN betyg_users u2 ON grade.Supervisor = u2.UID";
    
    $query = "SELECT 
                CONCAT (u1.Firstname, ' ', u1.Lastname) AS Examiner, 
                CONCAT (u2.Firstname, ' ', u2.Lastname) AS Supervisor
            FROM betyg_essays grade
                INNER JOIN betyg_users u1 ON grade.Examiner = u1.UID
                INNER JOIN betyg_users u2 ON grade.Supervisor = u2.UID";
    

    我已经尝试了你的代码,但是输出只给了我0和0。我已经更新了我在问题中使用的代码。@kexxcream我已经更改了我的答案,我不知道mysql不允许只对数字进行+操作:/我已经尝试了你的代码,但输出只给了我0和0。我已经更新了我在问题中使用的代码。@kexxcream我已经更改了我的答案,我不知道mysql不允许只对数字进行+操作:/谢谢,但我希望将考官和主管中的名字和姓氏结合起来。欢迎您。我已经更新了我的答案,它会给你名字和姓氏的组合谢谢,但我希望在考官和主管中结合名字和姓氏。欢迎你。我已经更新了我的答案,它会给你名字和姓氏的组合。这很好,但我希望在考官和主管中组合名字/姓氏。这很好,但我希望在考官和主管中组合名字/姓氏。