我正在尝试为我的博客创建一个档案页面,该页面仍在构建中。我有三个不同的MySQL表我需要从中提取数据,其中一个与另一个无关。我发现了一个类似的帖子here,但看到我对PHP不是很有经验,我无法想象如何将其转换为我需要的。我知道这可以通过执行三个不同的查询轻松完成,但这会给服务器带来不必要的负担,并减慢页面加载时间和其他所有内容。
2个相关类别是“博客”和“类别”,而第三个类别是内置于博客中的不同应用程序,名为“Brain Link”
以下是相关表格的两个查询:
$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']);
是否可以通过一个查询从所有这三个数据中获取数据?如果没有,有人可以指向某个方向指示我如何加入这两个相关的方向吗?
博客表格会在“类别”列下保存类别ID,以确定其所属的类别
我感谢任何帮助或建议!
答案 0 :(得分:0)
这将带来两个表中的数据。但是,从第三表数据中得不到数据
SELECT
*
FROM pub_blogs
LEFT JOIN categories on categories.id = pub_blogs .category
ORDER BY id DESC
第三个表的Ajnd你无法获得它,因为你无法建立到任何其他表的链接。如果您更改表结构,则可以执行此操作。
答案 1 :(得分:0)
你不能使用相同的查询从第3个表中获取数据。 Mysql想要两个表之间的映射。
您可以加入博客和类别,但不能加入大脑链接
对于前两个表:
select * , c.id , c.name , c.descriptions from pub_blogs p join categories c on c.id = p.category order by id desc ;
对于第三个表,由于没有映射,您无法加入它。
快乐编码:)