簡體   English   中英

內部聯接查詢幫助(獲取帖子類別)

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM