[英]SQL SELECT DISTINCT doesn't return distinct columns
我正在建立一個論壇,我希望將最新主題與其所屬類別並排顯示。 但是,當某人兩次在同一類別中創建一個主題時,它將兩次顯示該類別,並且在右側顯示不同的主題。
這是正確的,但我希望它僅是一個類別。 我為此嘗試了SQL SELECT DISTINCT
,但是它似乎不起作用,有人可以告訴我語法是否有問題或者問題出在其他地方嗎?
SELECT DISTINCT topics.topic_id, topics.topic_subject, topics.topic_by, categories.cat_id, categories.cat_name, categories.cat_description
FROM topics JOIN categories ON topics.topic_cat = categories.cat_id
ORDER BY topics.topic_date DESC LIMIT 3
另外,我想指出LIMIT 3
的原因是因為它來自主頁,應該只顯示3個類別。 該問題仍然存在於主頁和類別頁面上。
相關表格(圖):
在這種情況下,您不需要DISTINCT
。
要僅顯示一個類別,您需要使用GROUP BY
子句對主題進行分組。
嘗試以下SQL
SELECT topics.topic_subject, topics.topic_by, categories.cat_name, categories.cat_description, count(categories.cat_name)
FROM topics JOIN categories ON topics.topic_cat = categories.cat_id GROUP BY categories.cat_name
ORDER BY topics.topic_date DESC LIMIT 3
您對topic_id列嘗試使用DISTINCT時 ,需要將其更改為topic_subject列
topic_id列看起來像auto_increment主鍵,因此始終為DISTINCT。
像這樣改變
SELECT DISTINCT topics.topic_subject, topics.topic_id,
topics.topic_by, categories.cat_id, categories.cat_name,
categories.cat_description
FROM topics JOIN categories ON topics.topic_cat = categories.cat_id
GROUP BY categories.cat_name
ORDER BY topics.topic_date DESC LIMIT 3
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.