如何从另一个表中选择和显示?

bbuxkriu  于 2021-06-24  发布在  Mysql
关注(0)|答案(2)|浏览(292)

我的数据库中有两个表。一个标有坦帕汉比利克,另一个是比利克。两个表都有一个名为id的列(包含相同的值)。现在,我想显示不在tempahanbilik表中的其他数据
代码如下:

$query = "SELECT * FROM tempahanbilik 
        WHERE tarikh BETWEEN '".$_SESSION['tarikh']."' AND '".$_SESSION['tarikh2']."'
    && tempahanbilik.id NOT IN (SELECT bilik.id FROM bilik)";

$results = $mysqli->query($query) or die($mysqli->error._LINE_);

$q = "SELECT * FROM bilik";

$result = $mysqli->query($query) or die($mysqli->error._LINE_);

   $total = $results->num_rows;
    if($total>0)
    {
        while($rows=$results->fetch_assoc())
        {   

            $nama = $rows['tempat'];
             echo" <tr>
         <td align = center><a href='tengokKosong2.php?tempat=$nama'>$nama</a></td>";

         echo "</tr>";
        }

    }
    else
    {
        while($row=$result->fetch_assoc())
        { 

            $id=$row['id'];
            $nama =$row['nama'];

         echo" <tr>
         <td align = center><a href='tengokKosong2.php?id=$id&nama=$nama'>$nama</a></td>";

         echo "</tr>";

        }
    }
wpcxdonn

wpcxdonn1#

您想显示不在tempahanbilik中的bilik信息,对吗?

$query = "SELECT * FROM bilik 
WHERE id NOT IN (SELECT id FROM tempahanbilik WHERE 
tarikh BETWEEN '".$_SESSION['tarikh']."' AND '".$_SESSION['tarikh2']."')";

请尝试使用上面的查询,让我知道它是否有结果。。

gcxthw6b

gcxthw6b2#

不需要连接表,可以使用 sub query . 您的查询应该是这样的

$query = "SELECT * FROM tempahanbilik 
    WHERE ( tarikh BETWEEN '".$_SESSION['tarikh']."' AND '".$_SESSION['tarikh2']."'
) AND tempahanbilik.id NOT IN (SELECT bilik.id FROM bilik)";

相关问题