Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 如何内部联接3表_Mysql_Database_Inner Join - Fatal编程技术网

Mysql 如何内部联接3表

Mysql 如何内部联接3表,mysql,database,inner-join,Mysql,Database,Inner Join,如何连接三个表,我有三个表,分别是buku、sedia和perpus,buku有idbuku、namapengarang、namabuku、penerbit、genre和tahunterbit属性。perpus有idperpus、namaperpus和alamat属性。sedia有stok、idperpus和idbuku属性 我想问的是,我试图用语法内部连接3表 select * from buku inner join sedia where buku.idbuku =sedia.idbuku

如何连接三个表,我有三个表,分别是buku、sedia和perpus,buku有idbuku、namapengarang、namabuku、penerbit、genre和tahunterbit属性。perpus有idperpus、namaperpus和alamat属性。sedia有stok、idperpus和idbuku属性 我想问的是,我试图用语法内部连接3表

select * from buku inner join sedia where buku.idbuku =sedia.idbuku;
这很有效,但当我尝试时

select * from buku inner join sedia where buku.idbuku =sedia.idbuku inner join perpus where sedia.idperpus = perpus.idperpus;
代码是错误的,它表示警告:mysql_fetch_array()期望参数1是resource,第64行给出了布尔值

谁能告诉我该怎么办

我的php代码仍然不能正常工作

<?php
                include "koneksi.php";

                        $cari=$_POST["cari"];
                        $rbut=$_POST["rbut"];

                    if (isset($cari)||isset($rbut)){
                        $sql = "select * from buku where $rbut like '%$cari%'inner join sedia on buku.IDbuku = sedia.IDbuku inner join perpus on sedia.IDperpus = perpus.IDperpus;";
                        $result = mysql_query($sql);
                    }
                    elseif(!isset($cari)||!isset($rbut)){
                        $cari=$_POST["cari"];
                        $rbut=$_POST["rbut"];
                        $sql = "select * from buku";
                        $result = mysql_query($sql);
                    }
                    echo "
                        <table border='1'><tr><th>ID</th><th>Nama Pengarang</th><th>Nama Buku</th><th>Penerbit</th><th>Genre</th><th>Tahun Terbit</th></tr>";

                    while($row=mysql_fetch_array($result)){
                        echo "
                        <tr>
                            <td>$row[IDbuku]</td>
                            <td>$row[NamaPengarang]</td>
                            <td>$row[NamaBuku]</td>
                            <td>$row[Penerbit]</td>
                            <td>$row[Genre]</td>
                            <td>$row[TahunTerbit]</td>
                        </tr>";
                    }
                    echo "
                        </table>";
                ?>

您的
其中
条件必须是
上的

select * 
from buku 
inner join sedia on buku.idbuku =sedia.idbuku 
inner join perpus on sedia.idperpus = perpus.idperpus;
有关联接语法的详细信息,请参阅

**更新** 您的新查询错误:

$sql = "select * from buku inner join sedia on buku.IDbuku = sedia.IDbuku inner join perpus on sedia.IDperpus = perpus.IDperpus where $rbut like '%$cari%'";

如果您阅读文档,您将看到where语句必须位于joun语句之后。

请查看mysql_fetch_array()的文档。当您使用它时,请注意,有非常大的弃用警告与之关联。使用PDO或Mysqli并阅读使用情况。在数据库中运行它以查看是否得到任何结果。我在数据库中尝试过,它不会显示任何内容,它说ErrorThank mate,它不会再次给出任何错误消息^_^