Php 通过一个查询从2个相关和1个不相关的MySQL表获取数据?

Php 通过一个查询从2个相关和1个不相关的MySQL表获取数据?,php,mysql,join,multiple-tables,Php,Mysql,Join,Multiple Tables,我正在尝试为我的博客创建一个归档页面,该页面也正在构建中。我需要从三个不同的MySQL表中提取数据,其中一个表与另外两个表无关。我找到了一篇类似的帖子,但鉴于我对PHP不是很有经验,我无法找到如何将其转换为我需要的内容。我知道通过执行三个不同的查询很容易做到这一点,但这会给服务器带来不必要的负载,并降低页面加载时间和其他一切 这两个相关的类别是“博客”和“类别”,而第三个类别是针对博客中内置的另一个应用程序,称为“大脑链接” 以下是对相关表的两个查询: $blogQuery = mysq

我正在尝试为我的博客创建一个归档页面,该页面也正在构建中。我需要从三个不同的MySQL表中提取数据,其中一个表与另外两个表无关。我找到了一篇类似的帖子,但鉴于我对PHP不是很有经验,我无法找到如何将其转换为我需要的内容。我知道通过执行三个不同的查询很容易做到这一点,但这会给服务器带来不必要的负载,并降低页面加载时间和其他一切

这两个相关的类别是“博客”和“类别”,而第三个类别是针对博客中内置的另一个应用程序,称为“大脑链接”

以下是对相关表的两个查询:

    $blogQuery = mysqli_query($link, "SELECT * FROM pub_blogs ORDER BY id DESC") or die ("Could not access DB: " . mysqli_error($link));

    $row = mysqli_fetch_assoc($blogQuery);  
    $blogID = $link->real_escape_string($row['id']);
    $title = $link->real_escape_string($row['title']);
    $date = $link->real_escape_string($row['date']);
    $category = $link->real_escape_string($row['category']);
    $content = $link->real_escape_string($row['content']);

    $blogID = stripslashes($blogID);
    $title = stripslashes($title);
    $date = stripslashes($date);
    $category = stripslashes($category);
    $content = stripslashes($content);

    $catQuery = mysqli_query($link, "SELECT * FROM categories ORDER BY id DESC") or die ("Could not access DB: " . mysqli_error($link));

    $row = mysqli_fetch_assoc($catQuery);
    $catID = $link->real_escape_string($row['id']);
    $catName = $link->real_escape_string($row['name']);
    $description = $link->real_escape_string($row['descriptions']);

    $catID = stripslashes($catID);
    $catName = stripslashes($catName);
    $description = stripslashes($description);
这是第三个不相关的查询:

    $brainQuery = mysqli_query($link, "SELECT * FROM brain_links ORDER BY id DESC") or die ("Could not access DB: " . mysqli_error($link));

    $row = mysqli_fetch_assoc($brainQuery);
    $brainID = $link->real_escape_string($row['id']);
    $site_name = $link->real_escape_string($row['site_name']);
    $site_url = $link->real_escape_string($row['site_url']);
    $post_date = $link->real_escape_string($row['post_date']);
是否可以通过一个查询从这三个方面获取数据?如果没有的话,有人能给我指个方向,告诉我如何把两个相关的连接起来吗

blog表将类别ID保存在“category”列下,以确定它属于哪个类别


我感谢任何帮助或建议

这将从两个表中获取数据。然而,从第三个表中无法获取数据

SELECT 
        * 
FROM pub_blogs 
LEFT JOIN categories on categories.id = pub_blogs .category
ORDER BY id DESC

Ajnd对于第三个表,您无法获取它,因为您无法链接到任何其他表。如果您更改了表结构,您可以这样做。

不,您无法使用相同的查询从第三个表中获取数据。 Mysql需要两个表之间的映射

你可以加入博客和分类,但不能加入大脑链接

对于前两个表,请执行以下操作:

select * , c.id , c.name , c.descriptions from pub_blogs p  join categories c on c.id = p.category order by id desc ;  
对于第三个表,因为没有映射,所以不能加入它


快乐编码:)

您能将表结构放到sql FIDLE上并定义第三个表列吗