php - 使用 RIGHT JOIN 将页面数据匹配到页面

标签 php mysql

在我的代码中,我试图连接页面名称和页面数据名称,以便我能够使用数据库中的数据填充网页。这两个表如下图所示。

页面数据

Table 1

页面

Table 2

所以当我在我的 PHP 函数中运行以下代码时,我没想到 echo 会输出 1

function merge_page($dbc) {
    $q = "SELECT pages.page_name, page_data.section_name 
         FROM page_data 
         RIGHT JOIN 'page_data' 
         ON pages.id = page_data.section_page_id";

    $r = mysqli_query($dbc, $q);
    echo print_r($r);
    return 0;
}

我期待的是

pages.page_name    page_data.section_name 
   Welcome               Section 1
   Welcome               Section 2
   Welcome               Section 3
   Welcome               Section 4
   Welcome               Section 5

如果能帮我解决这个问题,我将不胜感激

最佳答案

我认为您应该使用内连接(在 page_data 和 pages 之间)而不是在 page_data 和 page_data 之间使用右连接

"SELECT pages.page_name, page_data.section_name 
 FROM page_data 
 INNER  JOIN 'pages' 
     ON pages.id = page_data.section_page_id";

如果行不匹配则左连接

"SELECT pages.page_name, page_data.section_name 
 FROM page_data 
 LEFT  JOIN 'pages' 
     ON pages.id = page_data.section_page_id";

关于php - 使用 RIGHT JOIN 将页面数据匹配到页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38794314/

相关文章:

php - Ajax 问题,变量没有被发送

php - 如何从 MySQL 日期时间中减去日期,其中表被指定为 MySQL 函数。

php - 需要一个解释如何使用 PHPUnit 的站点

PHP - 如何将图像资源写入文件

带计数和行的 MySQL 查询

php - MYSQL/PHP - 合并具有不同列的两个表

php - 针对 3 种不同用户类型的数据库设计指南

mysql - Slick 为 MySQL (MyISAM) 生成错误的 SQL

php - 动态检查 mySQL 数据库以查看当前时间是否已超过存储在数据库中的日期时间

mysql - 获取多个求和值的最大值