2
select t1.CardID,t2.Description,t5.BioData 
from db2.tblemployeeinfob t1
left join (db2.tbldepartments t2,db1.tblbiometrics t5)
on 
(t1.Department = t2.DepartmentID and
t1.CardID=t5.CardID
)

返回结果是1420 | (NULL) | (NULL)

预期结果是 1420 | DB2_Description_Value | DB1_BioData_value

如果我删除跨数据库连接,比如删除 db1,那么查询将可以很好地连接来自同一数据库的剩余两个表。

如果我在 db1 和 db2 之间进行跨数据库连接,即使来自同一数据库 db2 的表 t2 也会返回 NULL。

我的查询哪里出了问题,所以我可以从两个数据库中获取价值。

4

2 回答 2

2

您不应该在这里使用交叉连接。您需要两个单独的左连接:

SELECT t1.CardID, t2.Description, t5.BioData 
FROM db2.tblemployeeinfob AS t1
LEFT JOIN db2.tbldepartments AS t2 ON t1.Department = t2.DepartmentID
LEFT JOIN db1.tblbiometrics AS t5 ON t1.CardID = t5.CardID
于 2012-07-15T21:44:30.447 回答
0
            <?php
            include('../dbcon.php');
            include('../session.php');
            if (isset($_POST['delete_user'])){
            $id=$_POST['selector'];
            $class_id = $_POST['teacher_class_id'];
             $get_id=$_POST['get_id']; 
            $N = count($id);
            for($i=0; $i < $N; $i++)
            {
                $result = mysql_query("select * from files  where file_id = '$id[$i]' ")or die(mysql_error());
                while($row = mysql_fetch_array($result)){

                $fname = $row['fname'];
                $floc = $row['floc'];
                $fdesc = $row['fdesc'];
                $uploaded_by = $row['uploaded_by'];



                mysql_query("insert into files (floc,fdatein,fdesc,class_id,fname,uploaded_by) value('$floc',NOW(),'$fdesc','$class_id','$fname','$uploaded_by')")or die(mysql_error());


                }
            }
            ?>
            <script>
            window.location = 'downloadable.php<?php echo '?id='.$get_id; ?>';
            </script>
            <?php
            }

            if (isset($_POST['copy'])){
            $id=$_POST['selector'];

            $N = count($id);
            for($i=0; $i < $N; $i++)
            {
                $result = mysql_query("select * from files  where file_id = '$id[$i]' ")or die(mysql_error());
                while($row = mysql_fetch_array($result)){


                    $fname = $row['fname'];
                $floc = $row['floc'];
                $fdesc = $row['fdesc'];


                mysql_query("insert into teacher_backpack (floc,fdatein,fdesc,teacher_id,fname) value('$floc',NOW(),'$fdesc','$session_id','$fname')")or die(mysql_error());


                }
            }
            ?>
            <script>
            window.location = 'backpack.php';
            </script>
            <?php
            }
            ?>
            <?php

            if (isset($_POST['share'])){
            $id=$_POST['selector'];
            $teacher_id = $_POST['teacher_id1'];
            echo $teacher_id ; 
            $N = count($id);
            for($i=0; $i < $N; $i++)
            {
                $result = mysql_query("select * from files  where file_id = '$id[$i]' ")or die(mysql_error());
                while($row = mysql_fetch_array($result)){


                    $fname = $row['fname'];
                $floc = $row['floc'];
                $fdesc = $row['fdesc'];


                mysql_query("insert into teacher_shared (floc,fdatein,fdesc,teacher_id,fname,shared_teacher_id) value('$floc',NOW(),'$fdesc','$session_id','$fname','$teacher_id')")or die(mysql_error());


                }
            }
            ?>
            <script>
             window.location = 'tambah_share_file.php';
            </script>
            <?php
            }
            ?>
于 2017-12-07T18:46:46.940 回答