[英]Getting data from 2 related and 1 unrelated MySQL tables with one query?
我正在嘗試為我的博客創建一個存檔頁面,該頁面仍在構建中。 我有三個不同的MySQL表,我需要從中提取數據,它們中的1個與其他2個表無關。我在這里找到了類似的帖子,但是由於我對PHP的使用經驗不多,所以我無法弄清楚如何轉換滿足我的需求。 我知道可以通過執行三個不同的查詢輕松地完成此操作,但這將對服務器造成不必要的負載,並減慢頁面加載時間及其他所有負載。
這2個相關類別是“博客”和“類別”,而第3個類別是針對博客中內置的稱為“ 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保存在“類別”列下,以標識其所屬的類別
我感謝任何幫助或建議!
這將從兩個表中獲取數據。 但是,無法從第三張表獲得數據
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 ;
對於第三張表,因為沒有映射,所以您不能加入它。
快樂編碼:)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.