[英]help in inner join query (get post categories)
我建立了小論壇腳本
在我使用的索引頁面中
$query = mysql_query("SELECT * FROM threads");
while($threads = mysql_fetch_array($query)){
echo 'Thread title ' . $threads['thread_title'];
echo '<br />Thread content ' . $threads['thread'];
}
打印完整的網站帖子!
現在我想在標題下顯示帖子類別和帖子標簽
我如何獲取帖子的類別和標簽?
我有表包含此信息
表名->關系
列
post_id |類別名稱
我想加入此表並獲取每個帖子的category_name!
那么什么是正確的查詢?
注意:我的站點數據庫很大..所以我要快速查詢
非常感謝你
您應該發布它們所包含的表和字段的列表,以顯示想要查看的數據。
但是一般的想法應該是這樣的(假設線程表在post_id上有一個外鍵到關系表的post_id):
SELECT t.*, r.category_name FROM threads as t
INNER JOIN relations as r on t.thread_id = r.thread_id
剛剛根據您剛剛列出的字段更新了上述查詢。
僅供參考:如果您擔心性能,則應如上所述對數據庫查詢中的數據進行聯接,對初始數據集中的每一行執行附加查詢將產生附加調用*線程數。 現在,將其乘以查看該頁面的用戶數量乘以該倍數,數據庫上的負載將呈指數增長,這是不必要的。 所有這些操作都可以在一個數據庫查詢中完成,因此每個用戶將只觸發數據庫中的一個查詢,而不是每個頁面視圖可能成百上千個查詢。
好的,在這種情況下,請嘗試以下操作:
SELECT t.*, GROUP_CONCAT(r.category_name ORDER BY r.category_name SEPARATOR " ") as category_name
FROM threads as t
INNER JOIN relations as r on t.thread_id = r.thread_id
GROUP BY r.thread_id;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.