php - 连接 3 个表时无法查看结果

标签 php mysql

当我连接 3 个表时,我遇到了一些麻烦,我使用 mysqli 程序。这是我的查询..

$select = $connection->conn->query('SELECT * FROM master_beli, supplier, karyawan WHERE supplier.id_supplier = master_beli.id_supplier AND karyawan.id_karyawan = master_beli.id_karyawan');

之后我用这段代码查看

while($fetchData = $select->fetch_array()){
   echo $fetchData['id_karyawan'].'<br>';
}

我不知道问题出在哪里,因为几个月前我使用了这个查询并且它有效,但现在不起作用..

最佳答案

您的问题可能与两个表中存在的列名 id_karyawan 的歧义有关,请尝试使用显式别名或显式列命名,例如:

$select = $connection->conn->query('SELECT master_beli.id_karyawan
      FROM master_beli
      INNER JOIN supplier ON supplier.id_supplier = master_beli.id_supplier 
      INNER JOIN karyawan ON  karyawan.id_karyawan = master_beli.id_karyawan');

正如上面代码中所建议的,您应该使用显式连接语法..以获得更好的可读性 (sql中并不更提倡使用隐式连接sintax)

关于php - 连接 3 个表时无法查看结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48972112/

相关文章:

PHP:子类静态继承 - 子类共享静态变量?

javascript - 删除整个数据库而不是一行

php - 使用 PHP 从 MySQL 数据库中删除复选框值

php - 通过 slug 或 title wordpress 获取页面内容

php - 如何使用 imagemagick 创建水印

javascript - 自动刷新表 PHP JavaScript/jQuery

mysql - 单选查询处理两种情况

mysql - 保存时间大于24小时

mysql - aws rds,在查询期间丢失与 MySQL 服务器的连接,导入大文件时

php - bool(false) 出现在 bind_param() 函数中