簡體   English   中英

從表中選擇兩個不同的列

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

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