[英]Select two distinct columns from a table
因此,有一個站點,用戶在其中添加公告,首頁上有最新的公告,有些用戶一天中多次添加相同的公告,因此我需要選擇一個選項,以在一天中僅顯示一個用戶的公告。
我只需要一個用戶(“創建者”)在一天(“日期”)中發布一個“ id”。
我嘗試了此方法,但是它不能按我想要的方式工作(它獲取所有列),有人有任何想法嗎?
我的代碼:
SELECT
DISTINCT least(creator, date) AS creator,
greatest(creator, date) AS date,
title AS product_title,
id,
introimg, price,
currency,
city,
shetanxmebit,
publish_date
FROM mar_home_main
WHERE introimg!="" AND publish=1 AND visible=1
ORDER BY publish_date DESC
LIMIT 20;
我認為您可以看看[GROUP_CONCAT()]
。 這可能是您的解決方案的解決方法之一。 單擊此處了解有關它的詳細信息。
因此,在閱讀注釋並編輯我的代碼后,這一代碼對我有用
'SELECT id, creator, date, title AS product_title, introimg,
price, currency, city, shetanxmebit, publish_date
FROM mar_home_main
WHERE introimg!="" AND publish=1 AND visible=1
GROUP BY creator, date
ORDER BY publish_date DESC
LIMIT 20';
通常,您需要使用子查詢來獲取每組記錄的最新記錄,然后將其重新連接到主表中
SELECT a.id,
a.creator,
a.date,
a.title AS product_title,
a.introimg,
a.price,
a.currency,
a.city,
a.shetanxmebit,
a.publish_date
FROM mar_home_main a
INNER JOIN
(
SELECT creator, MAX(date) AS latest_date
FROM mar_home_main
WHERE introimg!=""
AND publish=1 AND
visible=1
GROUP BY creator
) sub0
ON a.creator = sub0.creator
ON a.date = sub0.latest_date
WHERE introimg!=""
AND publish=1
AND visible=1
ORDER BY publish_date DESC
LIMIT 20
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.