从Inner Join MySQL php获取3个表中的数据

时间:2015-11-24 23:13:15

标签: php mysql join

include '../incs/connect.php';
    $q=mysqli_query($con,"SELECT appl_reg_details.appl_id, appl_reg_details.apl_name, appl_reg_details.apl_email, rp_test_result.appl_status, rp_intv_result.intv_obt_marks
                          FROM appl_reg_details
                          INNER JOIN rp_test_result ON appl_reg_details.appl_id = rp_test_result.appl_id
                          INNER JOIN rp_intv_result ON rp_test_result.appl_id = rp_intv_result.appl_id
                          GROUP BY appl_reg_details.appl_id
                          ");
    WHILE($row=mysqli_fetch_array($q))
    {
        echo $row=['appl_id']." - ";
        echo $row=['apl_name']." - ";
        echo $row=['intv_obt_marks']." - ";
        echo $row=['appl_status']." -";
        echo $row=['apl_email']."<br/>";
    }

我有3个表,我想从table1获取3个字段的数据,从表2和表3各得到1个字段,我发现内连接可以做到这一点,当我运行它时它说&#39;注意:数组到字符串转换&#39;, 请帮助纠正这个问题或提供新方法

2 个答案:

答案 0 :(得分:1)

乍一看,查询看起来很好。

问题在于它下方的线条。它们包含不必要的=

echo $row=['apl_email']."<br/>";

这些行应该是这样的:

echo $row['apl_email']."<br/>";

答案 1 :(得分:0)

除了性能优势之外,GROUP BY除了混淆结果集外没有任何其他用途。尝试这样的事情,并修复由rjdown识别的编码错误:

SELECT DISTINCT d.appl_id
              , d.apl_name
              , d.apl_email
              , t.appl_status
              , i.intv_obt_marks
           FROM appl_reg_details d
           JOIN rp_test_result t
             ON t.appl_id = d.appl_id 
           JOIN rp_intv_result i 
             ON r.appl_id = i.appl_id;