繁体   English   中英

Oracle SQL中的JOINING表

[英]JOINING table in oracle SQL

我在尝试在oracle中联接两个表并显示该值时遇到问题。

我的代码如下所示:

 if ($_POST['action'] == 'show'){

        $requestCompSql = "SELECT REQUEST_COMPONENT_CUTTING.PROJECT_NAME, 
                                  REQUEST_COMPONENT_CUTTING.BASE_PLATE, 
                                  REQUEST_COMPONENT_CUTTING.THICKNESS, 
                                    COMPONENT.CUTTING.QTY_REQUIRED,
                                  REQUEST_COMPONENT_CUTTING.QTY_REQUESTED
                                  REQUEST_COMPONENT_CUTTING.REQUESTER, 
                                  REQUEST_COMPONENT_CUTTING.REQUEST_DATE 
                                        FROM REQUEST_COMPONENT_CUTTING
                                        INNER JOIN COMPONENT_CUTTING
                                  ON REQUEST_COMPONENT_CUTTING.PROJECT_NAME = COMPONENT_CUTTING.PROJECT_NAME
                                    AND REQUEST_COMPONENT_CUTTING.THICKNESS = COMPONENT_CUTTING.THICKNESS
                                    AND REQUEST_COMPONENT_CUTTING.BASE_PLATE = COMPONENT_CUTTING.BASE_PLATE = '{$_POST["bp"]}'";

        $requestCompParse = oci_parse($conn, $requestCompSql);

        oci_execute($requestCompParse);

        while($row = oci_fetch_assoc($requestCompParse)){

        echo "<div class='table-responsive'>";
        echo "<table class='table table-bordered'>";
                                echo '<table cellspacing = "0"';
                                    echo '<thead>';
                                    echo '<tr>
                                              <th>PROJECT</th>
                                              <th>BASEPLATE</th>
                                              <th>THICK</th>
                                              <th>QTY REQUESTED</th>
                                              <th>QTY REQUIRED</th>
                                              <th>REQUESTER</th>
                                              <th>REQ. DATE</th>
                                              <th align="center">ACTION</th>  
                                          </tr>
                                          </thead>';

                                     echo "<tbody>";
                                        echo "<tr class='warning'><td>$row[PROJECT_NAME]</td>";
                                        echo "<td>$row[BASE_PLATE]</td>";
                                        echo "<td>$row[THICKNESS]</td>";
                                        echo "<td>$row[QTY_REQUESTED]</td>";
                                        echo "<td>$row[QTY_REQUIRED]</td>";
                                        echo "<td>$row[REQUESTER]</td>";
                                        echo "<td>$row[REQUEST_DATE]</td>";
                                        echo "<td><input type='button' value='OK' class='btn btn-success'>
                                            <input type='button' value='REJECT' class='btn btn-danger'></td>";

                                        echo "</tr>";
                                     echo "</tbody>";
                                 echo "<table cellspacing = '0'";
                                 echo "</div>";
        }

    }

和给出的错误消息是这样的:

警告:oci_execute():ORA-00923:在第60行的C:\\ xampp \\ htdocs \\ WeltesInformationCenter \\ Component_approval \\ show_requested_component.php中找不到预期的FROM关键字

警告:oci_fetch_assoc():ORA-24374:在第62行的C:\\ xampp \\ htdocs \\ WeltesInformationCenter \\ Component_approval \\ show_requested_component.php中进行获取或执行并获取之前,定义未完成

我对此感到非常沮丧,因为QTY_REQUIRED值必须基于PROJECT_NAMETHICKNESSBASE_PLATE

where子句的最后一行是:

AND REQUEST_COMPONENT_CUTTING.BASE_PLATE = COMPONENT_CUTTING.BASE_PLATE = '{$_POST["bp"]}'

您应该将其分为两个不同的条件:

AND REQUEST_COMPONENT_CUTTING.BASE_PLATE = COMPONENT_CUTTING.BASE_PLATE
AND COMPONENT_CUTTING.BASE_PLATE = '{$_POST["bp"]}'

另外,您在select中缺少逗号,需要用下划线替换句点:

                       SELECT REQUEST_COMPONENT_CUTTING.PROJECT_NAME, 
                              REQUEST_COMPONENT_CUTTING.BASE_PLATE, 
                              REQUEST_COMPONENT_CUTTING.THICKNESS, 
                                COMPONENT_CUTTING.QTY_REQUIRED,
-----------------------------------------^
                              REQUEST_COMPONENT_CUTTING.QTY_REQUESTED,
---------------------------------------------------------------------^
                              REQUEST_COMPONENT_CUTTING.REQUESTER, 
                              REQUEST_COMPONENT_CUTTING.REQUEST_DATE 

您忘记了放置WHERE ,1个COMMA缺失和不规则的三种比较。 像这样尝试:

 $requestCompSql = "SELECT REQUEST_COMPONENT_CUTTING.PROJECT_NAME, 
                                      REQUEST_COMPONENT_CUTTING.BASE_PLATE, 
                                      REQUEST_COMPONENT_CUTTING.THICKNESS, 
                                        COMPONENT.CUTTING.QTY_REQUIRED,
                                      REQUEST_COMPONENT_CUTTING.QTY_REQUESTED,
                                      REQUEST_COMPONENT_CUTTING.REQUESTER, 
                                      REQUEST_COMPONENT_CUTTING.REQUEST_DATE 
                                            FROM REQUEST_COMPONENT_CUTTING
                                            INNER JOIN COMPONENT_CUTTING
                                      ON REQUEST_COMPONENT_CUTTING.PROJECT_NAME = COMPONENT_CUTTING.PROJECT_NAME
                                        WHERE REQUEST_COMPONENT_CUTTING.THICKNESS = COMPONENT_CUTTING.THICKNESS
                                        AND REQUEST_COMPONENT_CUTTING.BASE_PLATE = COMPONENT_CUTTING.BASE_PLATE
                                        AND COMPONENT_CUTTING.BASE_PLATE = '{$_POST["bp"]}'";

嗨,我可以在您的查询中看到两个问题

1,第5行后缺少逗号“,”

REQUEST_COMPONENT_CUTTING.QTY_REQUESTED REQUEST_COMPONENT_CUTTING.REQUESTER,

2,条件在最后一行没有正确实现

AND REQUEST_COMPONENT_CUTTING.BASE_PLATE = COMPONENT_CUTTING.BASE_PLATE ='{$ _POST [“ bp”]}'

这可能是

AND REQUEST_COMPONENT_CUTTING.BASE_PLATE = COMPONENT_CUTTING.BASE_PLATE AND COMPONENT_CUTTING.BASE_PLATE ='{$ _POST [“ bp”]}''“

以上仅是一个猜测,您可以根据需要进行更正。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM