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