php
  • mysql
  • sql-server
  • 2017-04-07 86 views 1 likes 
    1
    $r1 = mysqli_query($con,"SELECT course_id,status FROM attendance WHERE stud_id = '$stud_id'"); 
    
    $r2 = mysqli_query($con,"SELECT course_name,status FROM **$r1** NATURAL JOIN course WHERE stud_id = '$stud_id'"); 
    
    +0

    我建议你创建一个表名变量并用它代替。 –

    回答

    0

    您可能必须为此使用subquery

    $r2 = mysqli_query($con,"SELECT course_name,status FROM 
         (SELECT course_id,status FROM attendance WHERE stud_id = '$stud_id') 
         NATURAL JOIN course WHERE stud_id = '$stud_id'"); 
    
    +0

    这很好,但我想要使用$ r1,因为我在查询$ r2中给出。我想知道这是可能的或者不是,因为我使用了3-4类型的查询。因此,您提供使用子查询的结果查询是一个非常复杂和更大的人。下次跟踪这个大问题非常繁琐。 –

    +0

    根据头脑,你必须使用子查询。你不能从数据集(在你的情况下$ r1)与MySQL查询选择。你必须使用子查询。而我的不好。您必须正确设置别名,并在加入时正确使用它们。我只是想让你知道你必须使用子查询 – 2017-04-07 11:16:32

    +0

    而且这个查询在子查询** SELECT **上返回一个错误,因为这种类型的子句以前是在xampp上直接解析的 –

    0

    首先,从来没有使用变量,但不恰当的转义(mysqli::real-escape-string

    ,你可以直接连接两个表这样的:

    $r2 = mysqli_query(
        $con, 
        "SELECT c.course_name, a.status FROM attendance a 
        INNER JOIN course c ON c.stud_id = a.stud_id 
        WHERE stud_id = '$stud_id'" 
    ); 
    
    相关问题